java 怎么将List里面数据排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 怎么将List里面数据排序相关的知识,希望对你有一定的参考价值。

怎么将以下的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里面的第二个数据进行排序啊

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)+"   ");


参考技术A 如果你的list指的是awt里面的列表,可以通过add方法向控件末尾添加一条数据,如果想排序,可以先把列表中的数据全部获取,然后进行排序,清空列表,最后把排序的数据重新插入到列表中。 参考技术B 自己写个Comparator,然后调用Collections.sort(List<T> list,Comparator c); 方法
有什么不懂得欢迎追问!
参考技术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;

怎么将list集合中的数据加载到Map中

有两种方法:
一:先将你这个二位数转换成字符串,再将这个字符串的第一位和第二位分别提取出来,再将他们放到Map中。
二:提取出这个二位数的各位数与十位数
参考技术A .....你要加到Map的key里还是Value里?....追问

都有

追答

...。。。。。。。。。
你什么意思呀?
是不是 原来List里的 "1"要到Map里变成"1"----->"1"??

追问

不是,是list里面的"01"或者"10"要到map里面变成"0"-------->"1"或者"1"------>"0"

追答

......我还以为.....就是二位数吗? 没有其他的位数吧?

追问

没有了

追答

import java.awt.List;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class ListMap

public static void main(String[] args)
ArrayList l=new ArrayList();
l.add("01");
l.add("10");
HashMap hm=new HashMap();
for(String s:l)
hm.put(s.substring(0, 1), s.substring(1,2));

Set> it=hm.entrySet();
for(Map.Entry m:it)
System.out.println(m.getKey()+"------>"+m.getValue());





不好意思 刚有事 出去了下

以上是关于java 怎么将List里面数据排序的主要内容,如果未能解决你的问题,请参考以下文章

java中list排序

Java里面List排序

java list 批量操作?

怎么将list集合中的数据加载到Map中

java 怎么把list里面的数据取出来依次比较

java 对比两个list并取值