如何将以下类更改为使用arraylist和linkedlist的类?我必须更改此类中的所有代码。
我对arraylist和linkedlist
感到困惑import java.util.ArrayList;
public class ArrayStack {
private int maxsize;
private int top;
private int[] items;
public ArrayStack(int maxsize) {
if (maxsize <= 0)
throw new ArrayStackException("Stack size must be positive");
items = new int[maxsize];
this.maxsize = maxsize;
top = 0;
}
public void push(int item) {
if (top == items.length)
throw new ArrayStackException("Overflow Error");
items[top]=item;
top++;
}
public int pop() {
if (isEmpty())
throw new ArrayStackException("Underflow Error");
return items[--top];
}
public boolean isEmpty() {
return (top==0);
}
public static class ArrayStackException extends RuntimeException {
/**
*
*/
private static final long serialVersionUID = 1L;
public ArrayStackException(String message) {
super(message);
}
}
public static void main (String[] a) {
ArrayStack stack = new ArrayStack(3);
stack.push(1);
stack.push(2);
stack.push(3);
// srtack.push(4); //over flow error
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.pop());
}
}
给我一些有关此问题的解释。
arraylist: arrayList是收集框架的一部分,并且存在于java.util包中。它为我们提供了Java的动态阵列。但是,它可能比标准数组慢,但在需要大量阵列中的操纵的程序中有所帮助。
示例:
// Java program to demonstrate working of ArrayList in Java
import java.io.*;
import java.util.*;
class arrayli
{
public static void main(String[] args)
throws IOException
{
// size of ArrayList
int n = 5;
//declaring ArrayList with initial size n
ArrayList<Integer> arrli = new ArrayList<Integer>(n);
// Appending the new element at the end of the list
for (int i=1; i<=n; i++)
arrli.add(i);
// Printing elements
System.out.println(arrli);
// Remove element at index 3
arrli.remove(3);
// Displaying ArrayList after deletion
System.out.println(arrli);
// Printing elements one by one
for (int i=0; i<arrli.size(); i++)
System.out.print(arrli.get(i)+" ");
}
}
linkedlist: Java LinkedList类使用双重链接列表来存储元素。它提供了链接列表的数据结构。它继承了AbstractList类,并实施了列表和Deque界面。
有关Java LinkedList的重要点是:
- java linkedlist类可以包含重复的元素。
- Java LinkedList类维护插入顺序。
- java linkedlist类未同步。
- 在Java LinkedList类中,操纵很快,因为没有移动需要发生。
- Java LinkedList类可用作列表,堆栈或队列。
示例:
import java.util.*;
public class TestCollection7{
public static void main(String args[]){
LinkedList<String> al=new LinkedList<String>();
al.add("Ravi");
al.add("Vijay");
al.add("Ravi");
al.add("Ajay");
Iterator<String> itr=al.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}
有关更多差异,您可以参考https://www.javatpoint.com/difference-between-araylist-and-linkedlist