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里面的第二个数据进行排序啊 展开
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里面的第二个数据进行排序啊 展开
4个回答
展开全部
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)+" ");
}
}
}
展开全部
如果你的list指的是awt里面的列表,可以通过add方法向控件末尾添加一条数据,如果想排序,可以先把列表中的数据全部获取,然后进行排序,清空列表,最后把排序的数据重新插入到列表中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自己写个Comparator,然后调用Collections.sort(List<T> list,Comparator c); 方法
有什么不懂得欢迎追问!
有什么不懂得欢迎追问!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先 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;
}
}
我猜你可能是想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;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询