![](/img/trans.png)
[英]sorting arrylist of arraylist of integers not depends in their length in java
[英]Sorting ArrayList by sting length in java
我有一個 ArrayList
ArrayList<String[]> matches = new ArrayList<String[]>();
Collections.sort(matches, new Comparator<String>() {
@Override
public int compare(String word1, String word2) {
return word2.length() - word1.length();
}
});
我想按 ArrayList 中字符串的長度對這個 ArrayList 進行排序。 我希望列表按降序排列。
Input = ace, a, apple, cord
Output = apple, cord, ace, a
這適用於 Java 8。
Collections.sort(dictionary, (a, b)->Integer.compare(a.length(), b.length()));
您需要實現一個比較器,如下所示:
class stringLengthComparator implements Comparator<String> {
public int compare(String o1, String o2) {
if (o1.length() > o2.length()) {
return 1;
} else if (o1.length() < o2.length()) {
return -1;
} else {
return 0;
}
}
}
然后你只需像這樣對你的 ArrayList 進行排序:
Collections.sort(matches, new stringLengthComparator());
您可能指的是List<String>
,而不是List<String[]>
作為輸入。
為了對列表進行排序,您需要使用java.util.Collections.sort
方法和自定義比較器,按長度比較元素:
List<String> list = Arrays.asList( "ace", "a", "apple", "cord" ); Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { return o2.length() - o1.length(); } }); System.out.println(list);
這正是您將如何使用 ArrayList 執行程序的方式。 確保導入正確的 java.util 類。
public static void main(String args[])
{
String matches[] = {"ace", "a", "apple", "cord"};
List<String> list = new ArrayList<String>();
Collections.addAll(list, matches);
Collections.sort(list, new Comparator<String>(){
public int compare(String o1, String o2)
{
return o1.length() - o2.length();
}
});
Collections.reverse(list);
System.out.println(list);
}
Input: "ace", "a", "apple", "cord"
Output: [apple, cord, ace, a]
PS 這已經過測試,它完全按照您想要的方式工作。
從 Java 8 開始,您可以直接使用List.sort()
方法:
List<String> stringList = Arrays.asList("ace", "a", "apple", "cord");
stringList.sort(Comparator.comparingInt(String::length).reversed());
stringList
將按降序排列:
apple, cord, ace, a
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.