[英]Add a new line at the end of collection
我想使用未排序的通用集合來存儲值。
Set<Integer> map = new HashSet<Integer>();
map.Add( new Integer( 3 ) );
map.Add( new Integer( 2 ) );
map.Add( new Integer( 4 ) );
map.Add( new Integer( 1 ) );
我想元素將是3,2,4,1。 然后,我想從這個集合創建一個數組:
Integer[] arr = ( Integer[] )map.toArray( new Integer[map.size()] );
我很驚訝,因為arr中的元素與我放入地圖中的順序不同。 要做的是得到一個像這樣的數組:
arr[0] = 3;
arr[1] = 2;
arr[2] = 4;
arr[3] = 1;
我該怎么辦?
HashSet
不保證順序將保持不變。 如果要保持順序,請使用ArrayList
。
集是無序的。 不保證維持元素的順序。 如果添加元素的順序應保持不變,則需要使用列表。
List<Integer> map = new ArrayList<Integer>();
map.add( new Integer( 3 ) );
map.add( new Integer( 2 ) );
map.add( new Integer( 4 ) );
map.add( new Integer( 1 ) );
使用LinkedHashSet而不是HashSet
Set<Integer> map = new LinkedHashSet<Integer>();
map.add( new Integer( 3 ) );
map.add( new Integer( 2 ) );
map.add( new Integer( 4 ) );
map.add( new Integer( 1 ) );
Integer[] arr = ( Integer[] )map.toArray( new Integer[map.size()] );
System.out.println(Arrays.toString(arr));
您可以使用LinkedHashSet
保留輸入順序:
Set<Integer> map = new LinkedHashSet<Integer>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.