import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Person> persons=new ArrayList<Person>();
initList(persons);
show(persons);
Collections.sort(persons);
show(persons);
}
static void initList(List persons){
Person p=new Person();
p.setAge(1);
p.setName("baby");
persons.add(p);
p=new Person();
p.setAge(11);
p.setName("kid");
persons.add(p);
p=new Person();
p.setAge(51);
p.setName("gather");
persons.add(p);
p=new Person();
p.setAge(21);
p.setName("father");
persons.add(p);
}
static void show(List persons){
Person p=null;
for(int i=0;i<persons.size();i++){
p=(Person)persons.get(i);
System.out.println("name = "+ p.getName()+ ", age="+p.getAge());//按插入的顺序
}
}
}
package list;
public class Person implements Comparable {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int compareTo(Object o) {
if(!(o instanceof Person)){
return -1;
}
Person p=(Person)o;
if(this.age==p.getAge()){
return 0;
}
else if(this.age>p.getAge()){
return 1;
}
else{
return -1;
}
}
}
使用工具类Collections实现List的排序,其中的对象必须实现Comparable接口
Person pp=null;
Iterator it=persons.iterator();
while(it.hasNext()){
pp=(Person)it.next();
System.out.println(pp.getName());
}
Person p1=new Person();
p1.setName("kid22");
p1.setAge(11);
int i=Collections.binarySearch((List)persons, p1); //依赖Comparable接口
System.out.println("i="+i);
Collections.reverse(persons); //反序
persons=Collections.emptyList(); // 清空list
Person p=Collections.max(persons);
p=Collections.min(persons);
Collections.shuffle(persons);// 混洗
persons=Collections.synchronizedList(persons);
相关推荐
本文通过两种方法给大家介绍java集合中的Collections.sort方法对list排序,第一种方式是list中的对象实现Comparable接口,第二种方法是根据Collections.sort重载方法实现,对collections.sort方法感兴趣的朋友一起...
实现 Comparable 接口的对象可以使用 Collections.sort() 方法对其进行排序。Comparable 接口中定义了 compareTo() 方法,用于提供对其实现类的对象进行整体排序所需要的比较逻辑。例如: ```java class Programmer...
java 集合类的排序主要是用Collections.sort方法,Collections和Collection是不一样的,前者是类,后者是接口,在这里,我主要是想说明它的sort方法的几种类型, 提示:实现接口的方法时,只需要比较两个数,大的返回1,...
当我们有这么一个personList,里面包含了person1, person2, persion3….., 我们用Collections.sort( personList ), 是得不到预期的结果的. 这时肯定有人要问, 那为什么可以排序一个字符串list呢: 如 ...
使用 Collections.sort 方法对对象列表进行排序,并传递带有被比较类的 CustomComparator 对象,用于排序的方法名和类类型 例如: public static List<Grades> getSortedList(List<Grades> gradeList, Class<?&...
【问题描述】设计一个学生类student,记录学生学号、姓名以及数学、英语、Java课程成绩,并可根据三门课程平均分进行排序(实现comparable接口)。创建一个学生list,录入若干学生信息,并根据平均分从大到小排序。 ...
排序:Comparable Comparator Collections.sort() ArrayList:底层用数组实现的List 特点:查询效率高,增删效率低 轻量级 线程不安全 LinkedList:底层用双向循环链表 实现的List 特点:查询效率低,增删效率高 ...
代码演示:Arrays实现排序 public static void main(String[] args) { int[] ages={23, 45,12,76,34,56,24}; Arrays.sort(ages); for (int i = 0; i < ages.length; i++) { System.out.println(ages[i]); } } ...
Collections.sort(strList); 圖 5 /運用 max()和 sort() 自訂 Generic Classes 先前的 LinkedList<T> 運用實例中,我曾假設 Stroke, Rect, Circle皆繼承自 Shape。如果我們希望這些 classes有足夠的彈性...
collection_map_demo java集合框架的demo 通过实现一个学生选课的demo了解java集合框架知识点 List、Set、Map的增删改查 Collections工具类的sort方法以及comparable接口和comparator接口