java集合List集合使用Collections排序
有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()+" ");
}
}
}
评论区
请写下您的评论...
猜你喜欢
blog
java集合之Hashtable
java基础
1648
java集合之Hashtable一、构造方法1.publicHashtable()publicHashtable(){this(11,0.75f);}无参构造,初始化一个容量为11,负载因子为
blog
java集合框架总结
java基础
2851
常的学习开发中,灵活熟练地使用这些集合框架,可以很明显地提高我们的开发效率,当然仅仅会用还是不够的,理解其中的设计思想与原理才能更好地提高我们的开发水平。1.Collection接口从图中可以知道Col
算法基础
1822
Java中遍历集合的方式以list集合为例,有三种遍历方式。ListStringlist=newArrayList();
list.add("2");
list.add("2");
list.add
blog
java集合之linkedList
java基础
2370
add和remove,LinkedList比较占优势。2.双向链表的实现参考:简单双向链表的增删改查3.linkedList的继承关系从继承图中可以看出LinkList实现了List接口,实现了list接
blog
java集合之ArrayList
java基础
2880
不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(Listl)函数返回一个线程安全的ArrayList类。构造方法:ArrayList
blog
java集合之HashSet
java基础
1497
一、HashSet底层实现从HashSet的源码中可以发现,它的底层维护了一个HashMap,在newHashSet的时候,构造方法中其实是new了一个HashMap。privatetransientHashMapE,Objectmap;publicHashSet(){map=newHashMap();}publicHashSet(Collection?extendsEc){map=newHash
blog
java集合之TreeMap实现原理
java基础
2017
java集合之TreeMap实现原理TreeMap集合的实现其实说简单也简单说复杂也复杂,说简单是因为TreeMap底层实现完全依靠红黑树这个数据结构,相比与HashMap来说TreeMap不用考虑
blog
插入排序 - 数据结构与算法
数据结构与算法
1392
算法思想:把所有需要排序的数据分成两个集合,一个是待排序集合,一个是已排序的集合,算法每次从未排序集合顺序或随机拿取一个数据,把它加入到已排序集合使其有序,直到未排序集合中的数据被取走完,算法结束
最新发表
归档
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
2024-08
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
加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。