[英]Sorting an arraylist of arraylist by its index in java
我有一個arraylist的arraylist,每個內部arraylist包含2個值,第一個是整數,第二個是字符串,因此從本質上來說,它看起來像是:{5,some text},{12,more text},{3,甚至更多的文本}等,我想做的就是對此進行排序,以便按從最大整數到最小的降序對其進行排序,因此前面的示例如下:{12,一些文本},{5,一些文字},{3,甚至更多文字},任何幫助都將大有幫助
您的數據結構聽起來實際上是一個“地圖”。 也許您應該研究數據結構,尤其是收集接口和類...
如果您仍然認為自己擁有的是“列表”,則應該使用正確的Comparator或Comparable類型進行Collections.sort操作
如果列表是正確的,這是您的數據結構的一種解決方案。
import java.util.ArrayList;
import java.util.Collections;
public class InnerObject implements Comparable<InnerObject> {
Integer index;
String name;
public InnerObject(Integer index, String name) {
this.index = index;
this.name = name;
}
@Override
public int compareTo(InnerObject other) {
return index.compareTo(other.index);
}
@Override
public String toString() {
return "{" + index + "," + name + "}";
}
public static void main(String[] args) {
ArrayList<InnerObject> list = new ArrayList<InnerObject>();
list.add(new InnerObject(666, "devil"));
list.add(new InnerObject(1, "one"));
list.add(new InnerObject(10, "ten"));
System.out.println("list before order: " + list);
Collections.sort(list);
System.out.println("list after order: " + list);
}
}
如果您的內部列表可以包含一個具有2個屬性的對象,那就更好了。 然后可以將該對象用於排序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.