java集合List集合使用Collections排序

硅谷探秘者 3485 0 0

有Student类,一个List集合中有若干Student对象,对此集合按分数排序


Student

package com.example.demo.entity;
@SuppressWarnings("rawtypes")
public class Student implements Comparable{
	private int id;
	private String name;
	private float score;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public float getScore() {
		return score;
	}
	public void setScore(float score) {
		this.score = score;
	}
	public Student(int id, String name, float score) {
		super();
		this.id = id;
		this.name = name;
		this.score = score;
	}
	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}
	@Override
	public int compareTo(Object o){
		// TODO Auto-generated method stub
		if(o instanceof Student) {
			Student s=(Student)o;
			if(s.getScore()>this.getScore()) {
				return 1;
			}else if(s.getScore()<this.getScore()){
				return -1;
			}else {
				return 0;
			}
		}else {
			try {
				throw new Exception("比较异常");
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return 0;
	}
}

        要想使用Collections.sort(l); 排序 Student类必须实现Comparable接口,如上,返回1本对象大于比较对象,-1代表小于比较对象。

@Override
	public int compareTo(Object o){
		// TODO Auto-generated method stub
		if(o instanceof Student) {
			Student s=(Student)o;
			if(s.getScore()>this.getScore()) {
				return 1;
			}else if(s.getScore()<this.getScore()){
				return -1;
			}else {
				return 0;
			}
		}else {
			try {
				throw new Exception("比较异常");
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return 0;
	}


测试

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.junit.Test;
import com.example.demo.entity.Student;
public class Test2Controller {
	
	@SuppressWarnings("unchecked")
	@Test
	public void test() {
		List<Student> l=new ArrayList<Student>();
		for(int i=0;i<1000;i++){
			l.add(new Student(i,"test"+i,(float)Math.round((Math.random()*10000))/100));
		}
		long t=0;
		t-=System.currentTimeMillis();
		Collections.sort(l);
		t+=System.currentTimeMillis();
		System.out.println("time:"+t);
		for(Student s:l) {
			System.out.print(s.getScore()+"   ");
		}
	}
}



评论区
请写下您的评论...
暂无评论...
猜你喜欢
java基础 1324 java之Hashtable一、构造方法1.publicHashtable()publicHashtable(){this(11,0.75f);}无参构造,初始化一个容量为11,负载因子为
java基础 2264 常的学习开发中,灵活熟练地使这些框架,可以很明显地提高我们的开发效率,当然仅仅会还是不够的,理解其中的设计思想与原理才能更好地提高我们的开发水平。1.Collection接口从图中可以知道Col
算法基础 1204 Java中遍历的方式以list为例,有三种遍历方式。ListStringlist=newArrayList(); list.add("2"); list.add("2"); list.add
java基础 2098 add和remove,LinkedList比较占优势。2.双向链表的实现参考:简单双向链表的增删改查3.linkedList的继承关系从继承图中可以看出LinkList实现了List接口,实现了list
java基础 2663 不是线程安全的,只能在单线程环境下,多线程环境下可以考虑Collections.synchronizedList(Listl)函数返回一个线程安全的ArrayList类。构造方法:ArrayList
java基础 1272 一、HashSet底层实现从HashSet的源码中可以发现,它的底层维护了一个HashMap,在newHashSet的时候,构造方法中其实是new了一个HashMap。privatetransientHashMapE,Objectmap;publicHashSet(){map=newHashMap();}publicHashSet(Collection?extendsEc){map=newHash
java基础 1765 java之TreeMap实现原理TreeMap的实现其实说简单也简单说复杂也复杂,说简单是因为TreeMap底层实现完全依靠红黑树这个数据结构,相比与HashMap来说TreeMap不考虑
数据结构与算法 1173 算法思想:把所有需要的数据分成两个,一个是待,一个是已,算法每次从未或随机拿取一个数据,把它加入到已使其有,直到未中的数据被取走完,算法结束
归档
2018-11  12 2018-12  33 2019-01  28 2019-02  28 2019-03  32 2019-04  27 2019-05  33 2019-06  6 2019-07  12 2019-08  12 2019-09  21 2019-10  8 2019-11  15 2019-12  25 2020-01  9 2020-02  5 2020-03  16 2020-04  4 2020-06  1 2020-07  7 2020-08  13 2020-09  9 2020-10  5 2020-12  3 2021-01  1 2021-02  5 2021-03  7 2021-04  4 2021-05  4 2021-06  1 2021-07  7 2021-08  2 2021-09  8 2021-10  9 2021-11  16 2021-12  14 2022-01  7 2022-05  1 2022-08  3 2022-09  2 2022-10  2 2022-12  5 2023-01  3 2023-02  1 2023-03  4 2023-04  2 2023-06  3 2023-07  4 2023-08  1 2023-10  1 2024-02  1 2024-03  1 2024-04  1
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived minio mysql ensp 网络基础 xxl-job rabbitmq haproxy srs 音视频 webrtc javascript
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。