java 怎么将List里面数据排序

怎么将以下的List里面的数据排序list.add(newArrayList(2,5,6))list.add(newArrayList(2,4,6))list.add(n... 怎么将以下的List里面的数据排序
list.add(new ArrayList(2,5,6))
list.add(new ArrayList(2,4,6))
list.add(new ArrayList(2,6,6))
list.add(new ArrayList(2,1,6))
怎么按ArrayList里面的第二个数据进行排序啊
展开
 我来答
charlycong
推荐于2018-03-14 · TA获得超过445个赞
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:292万
展开全部
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;


public class ArrayListOrder {

public static void main(String[] args) {
List<List<Integer>> list = new ArrayList<List<Integer>>();
List<Integer> arrayList1 = new ArrayList<Integer>();
arrayList1.add(2);
arrayList1.add(5);
arrayList1.add(6);
list.add(arrayList1);
List<Integer> arrayList2 = new ArrayList<Integer>();
arrayList2.add(2);
arrayList2.add(4);
arrayList2.add(6);
list.add(arrayList2);
List<Integer> arrayList3 = new ArrayList<Integer>();
arrayList3.add(2);
arrayList3.add(6);
arrayList3.add(6);
list.add(arrayList3);
List<Integer> arrayList4 = new ArrayList<Integer>();
arrayList4.add(2);
arrayList4.add(1);
arrayList4.add(6);
list.add(arrayList4);
for (List<Integer> tmpList : list) {
System.out.print(tmpList.get(1)+"   ");
}
System.out.println("");

//排序
Collections.sort(list,new Comparator<List<Integer>>(){
public int compare(List<Integer> list1, List<Integer> list2) {
//比较每个ArrayList的第二个元素
if(list1.get(1)==list2.get(1)){
return 0;
}else if(list1.get(1)>list2.get(1)){
return 1;
}else{
return -1;
}
}
});
for (List<Integer> tmpList : list) {
System.out.print(tmpList.get(1)+"   ");
}
}
}
百度网友7c5f967
2013-10-31 · TA获得超过324个赞
知道小有建树答主
回答量:190
采纳率:0%
帮助的人:187万
展开全部
如果你的list指的是awt里面的列表,可以通过add方法向控件末尾添加一条数据,如果想排序,可以先把列表中的数据全部获取,然后进行排序,清空列表,最后把排序的数据重新插入到列表中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
StuRunFast
2013-10-31 · 超过26用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:42.1万
展开全部
自己写个Comparator,然后调用Collections.sort(List<T> list,Comparator c); 方法
有什么不懂得欢迎追问!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zsc我行我素
2013-10-31 · TA获得超过241个赞
知道小有建树答主
回答量:142
采纳率:0%
帮助的人:92.4万
展开全部
首先 ArrayList(2,5,6)肯定是错的 有这样的构造方法吗?
我猜你可能是想new 一个数组吧

不知道你具体要排序什么只能给你一个排序的例子了,该例子排序的是Student对象,参考这个例子去看看你的需求该怎么实现应该很简单了吧
// 这是排序测试类
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
public class ComparatorTest {

@SuppressWarnings({ "unchecked" })
public static void main(String[] args) {
List<Student> strs = new ArrayList<Student>();
strs.add(new Student(10, "zhangsan", new Date()));
strs.add(new Student(11, "lisi", new Date()));
strs.add(new Student(12, "wanger", new Date()));
strs.add(new Student(13, "mazi", new Date()));
strs.add(new Student(14, "xiaoming", new Date()));
strs.add(new Student(15, "xiaoming", new Date()));
strs.add(new Student(16, "dajun", new Date()));
Collections.sort(strs, new Comparator(){
//排序的实现方法
@Override
public int compare(Object o1, Object o2) {
Student s1 = (Student)o1;
Student s2 = (Student)o2;
// return s2.getName().compareTo(s1.getName()); // 根据Student的name字段排序

return s1.getAge() - s2.getAge(); // 根据Student的age字段排序
}

});

for(int i = 0; i < strs.size(); i++) {
System.out.println(strs.get(i).getAge() + "--" + strs.get(i).getName() + "---" + strs.get(i).getBirthday());
}
}
}

// 这是被排序的对象
public class Student {
public Student(int age, String name , Date birthday) {
this.age = age;
this.name = name;
this.birthday = birthday;
}

private int age;

private String name;

private Date birthday;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式