2016-01-09 40 views
-1

ArrayList中,我有不同的字符串像"Home","Work","XYZ","YZX","JDMD",...怎麼可以把家庭放在上面,然後工作,然後remaining.Someone建議的方式來做到這一點如何排序的ArrayList基於當前字符串值,它

+0

您的意思是插入到第一個位置? – starkshang

+0

您需要將所有值寫入新的數組列表中。然而,它不能自動執行,你將不得不檢查每個值,如果它匹配按照你想要的命令 – ImAtWar

+0

添加它在列表中,你可以看到我的問題中的字符串順序,這些字符串是隨機的,它應該像上面的一些東西訂單。第一個位置HOME,然後工作後剩下的。 – sri

回答

0

這裏是倒帶爲:

ArrayList list = new ArrayList<>(); 
list.add("Home"); 
list.add("Work"); 
list.add("Freetime"); 
list.remove("Work"); 
list.add(0, "Work"); 

巨星DevLen_

0

如果你不願意寫自己的排序或創建一個包裝,你可以做以下

  1. 刪除「家」,並從清單「工作」
  2. 待辦事項Collections.sort(名單)
  3. 添加「家」,通過添加在列表的開始「工作」(INT指數,E元素)方法 。


//remove "Home","Work" from 
list.remove("Home") 
list.remove("Work") 
Collections.sort(list) 
//order of the following two matters 
list.add(0, "Work") 
list.add(0, "Home") 

注: - 在上面的代碼中使用將要求列表的向右的元件的移位add()方法。加(0,OBJ)和刪除是複雜度爲O(n)的

1

的假設要排序您的收藏字母,你可以做以下

List<String> originalList = Arrays.asList("YZW", "Work", "Freetime", "Home", "XZY"); 
originalList.sort((x,y) -> x.compareTo(y)); 

如果你總是希望有家庭在隨後開始首先要改變compareTo函數來考慮Home。

0

如果要按排序順序添加字符串,可以使用SortedSet。這裏是一個代碼片段

SortedSet<String> set = new TreeSet<>(); 
set.add("JDMD"); 
set.add("YZX"); 
set.add("XYZ"); 
set.add("Work"); 
set.add("Home"); 

for(String s : set) { 
    System.out.println(s); 
} 

這將以排序的方式添加每個字符串。