List排序
今天项目中涉及到对list的排序,特记录于此:
在Java Collection Framework中定义的List实现有Vector,ArrayList和LinkedList。这些集合提供了对对象组的索引访问。他们提供了元素的添加与删除支持。然而,它们并没有内置的元素排序支持。
你能够使用java.util.Collections类中的sort()方法对List元素进行排序。你既可以给方法传递一个List对象,也可以传递一个List和一个Comparator。如果列表中的元素全都是相同类型的类,并且这个类实现了Comparable接口,你可以简单的调用Collections.sort()。如果这个类没有实现Comparator,你也可以传递一个Comparator到方法sort()中,进行排序。如果你不想使用缺省的分类顺序进行排序,你同样可以传递一个Comparator到方法sort()中来进行排序。
首先按照第一中进行排序:
java程序如下:
按照年龄进行排序:
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Student implements Comparable { private int id; private int age; private String name; public Student(int id,int age, String name){ this.id=id; this.age = age; this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } 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; } @Override public String toString() { return "Student [id=" + id + ", age=" + age + ", name=" + name + "]"; } public static void main(String args[]){ List<Student> list=new ArrayList<Student>(); for(int i=10;i>0;i--){ list.add(new Student(i,i+10,"小莉"+i)); } Collections.sort(list); for(Student s: list){ System.out.println(s+""); } } public int compareTo(Object o) { if(o instanceof Student){ Student s=(Student)o; if(this.age>s.age){ return 1; } else{ return 0; } } return -1; } }
结果如下:
Student [id=10, age=20, name=小莉10]
Student [id=9, age=19, name=小莉9]
Student [id=8, age=18, name=小莉8]
Student [id=7, age=17, name=小莉7]
Student [id=6, age=16, name=小莉6]
Student [id=5, age=15, name=小莉5]
Student [id=4, age=14, name=小莉4]
Student [id=3, age=13, name=小莉3]
Student [id=2, age=12, name=小莉2]
Student [id=1, age=11, name=小莉1]
按照第二种进行排序:
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; public class ListSort { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("92"); list.add("68"); list.add("168"); list.add("242"); list.add("317"); list.add("105"); // 字符串排序 Collections.sort(list); System.out.println(list.toString()); // [105, 168.61, 242, 317, 68.9, 92.8] Collections.sort(list, new Comparator() { @Override public int compare(Object o1, Object o2) { return new Double((String) o1).compareTo(new Double((String) o2)); } }); System.out.println(list.toString()); // [68.9, 92.8, 105, 168.61, 242, 317] } }
结果为:
[105, 168, 242, 317, 68, 92]
[68, 92, 105, 168, 242, 317]
相关文章
- PHP二维数组排序(list_order)
- Ajax传递List对象到前台展示问题遇到的坑
- Dart: List排序
- Python技巧—list与字符串互相转换
- List集合中的对象根据属性排序
- 合并两个list集合并且排序
- 【学习总结】GirlsInAI ML-diary day-8-list列表
- java中List、Array、Map、Set等集合相互转换的最佳方法
- list容器之排序案例
- 给SAP Spartacus B2B list增加用户提示信息
- Atitit db query op shourt code lib list 数据库查询类库最佳实践 目录 1.1. Jpa1 1.2. Dbutil1 1.3. Mybtis trouble
- Atitit q2016 qa doc list on home ntpc.docx
- Android intent传list值和object
- 使用toArray将List转数组:使用Call to ‘toArray()‘ with pre-sized array argument ‘new String[list.size()]‘
- Java中List的排序
- C#利用iComparable接口实现List排序
- leetcode——Insertion Sort List 对链表进行插入排序(AC)
- drop down list for little vGL
- Java中List集合的常用方法
- List<?> list= new ArrayList<?>接口引用指向实现类的对象.