1. java中哪些集合框架实现了list接口
在Java集合框架中,实现了List接口的包括ArrayList,LinkedList,Vector,以及Stack。
现在,我们进一步来探讨一下这些实现List接口的集合框架。
1. ArrayList:ArrayList是List接口的一个可调整大小的数组实现。它是所有基于数组的数据结构的最佳选择,因为它提供了快速的随机访问列表中的元素。然而,插入和删除元素的操作可能会比较昂贵,因为需要移动元素。
例如:
java
List list = new ArrayList>();
list.add("Apple");
list.add("Banana");
2. LinkedList:LinkedList实现了List接口,并且也提供了队列(Queue)和双端队列(Deque)接口的实现。它是插入和删除操作的最佳选择,因为它在列表的开始和结束都可以进行O(1)的操作。然而,随机访问元素可能需要花费更多的时间,因为要遍历列表。
例如:
java
List list = new LinkedList>();
list.add("Apple");
list.add("Banana");
3. Vector:Vector是一个实现了可动态增长的数组的类,它和ArrayList非常相似,但是Vector是同步的,而ArrayList不是。因此,Vector在多线程环境中表现会更好,但在单线程环境中,其性能可能会低于ArrayList。
例如:
java
List list = new Vector>();
list.add("Apple");
list.add("Banana");
4. Stack:Stack是Vector的一个子类,它实现了标准的后进先出的栈。Stack继承自Vector,它也具有线程安全的特性。然而,Java中的Stack被认为是遗留类,一般情况下,建议使用更现代、更高效的Deque接口的实现(如ArrayDeque),除非有特殊的需求。
例如:
java
Stack stack = new Stack>();
stack.push("Apple");
stack.push("Banana");
以上这些类都实现了Java的List接口,因此它们都具有List接口的基本特性,包括添加元素、删除元素、获取元素等。同时,它们也根据自身的特性,提供了不同的性能优势和用法。在实际使用中,应根据具体需求选择合适的实现类。
2. java中得到一个list集合,将list中的元素每一行5列输出,怎么写
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
for(int i=0; i< 100; i++){
list.add(Integer.valueOf(i).toString());
}
for(int j=0; j<list.size(); j++){
if(j%5 == 0){
System.out.println();
}
System.out.print(list.get(j) + ",");
}
}