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) + ",");
}
}