2017-04-04 40 views
0

如果我們想要表示一組允許重複並且保留插入順序的單個對象,那麼我們應該使用List。「插入順序保存在集合中」是什麼意思?

這裏,插入順序是指什麼?

+0

將元素添加到列表的順序是從列表中檢索元素的順序。 – David

+1

[可以保持插入順序並且不重複的集合]的可能重複(http://stackoverflow.com/questions/16480529/collection-that-will-maintain-insertion-order-and-no-duplicates) – freedev

+0

說你'重新嘗試在商店中代表陣容。你要確保你記得顧客進入線路的訂單,所以他們可以按照這個順序送達。在這種情況下,您將需要一個集合,其中保留了廣告訂單。 – flakes

回答

1

插入順序是用於添加集合中元素的順序。

Iteration order for above implementations

  • HashSet的 - 未定義。
  • HashMap中 - 未定義
  • LinkedHashSet - 插入順序
  • LinkedHashMap的 - 鍵(默認)的插入順序,或 '訪問順序'
  • 的ArrayList - 插入順序。
  • LinkedList - 廣告訂單。
  • TreeSet - 升序,根據比較/ 比較器。

有添加元素時可以保留插入順序的集合,其他元素不能。請參閱這link

2

插入順序是指在其中添加元素添加到數據結構中的順序(即,集合等ListSetMap,等等。)

例如,List對象維護您添加元素的順序,而Set對象不維護它們插入的元素的順序。

首先來List對象和添加元素:

List<String> list = new ArrayList<>(); 
list.add("1Z"); 
list.add("2Y"); 
list.add("3X"); 
System.out.println(list); 

輸出(即,內部List對象):[1Z,2Y,3X](順序相同插入)

現在,來Set對象:

Set<String> set = new HashSet<>(); 
set.add("1Z"); 
set.add("2Y"); 
set.add("3X"); 
System.out.println(set); 

Outpu (即Set內的對象):[3X,2Y,1Z](受干擾的訂單)

0

插入順序表示插入數據的順序。

public static void main(String[] args) { 
    List<String> list = new ArrayList<>(); 
    list.add("alpha"); 
    list.add("beta"); 
    list.add("gamma"); 

    for (String string : list) { 
     System.out.println(string); 
    } 
} 

輸出: 阿爾法 的β 伽馬

插入順序被保持。

如果你想在原來的插入順序也有鏈接的XXX 類,保持插入順序附加鏈接列表。 大多數時間你不在乎,所以你使用哈希XXX,或者如果你想要一個自然順序,所以你使用樹XXX