Java的Collection.sort()方法
Java中的Collection.sort()方法能使用泛型对对象的变量进行排序,下面是两种方法。
文件名:student.java
import java.util.*; import com.sun.org.apache.xerces.internal.dom.ProcessingInstructionImpl;
import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils.Collections; public class Student implements Comparable<Student>{ private int id;
private String name; public Student(String setname,int id) {
this.id=id;
this.name=setname;
} 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;
} @Override
public int compareTo(Student stu) {
/* 重写compareTo方法1 Compare排序接口
* id升序排序
if(this.id>stu.id) {
return 1;
}
else if (this.id<stu.id) {
return -1;
}
else {
return 0;
}
或者return this.getId-stu.getId;
*/ //名字升序排序
return this.getName().compareTo(stu.getName());
} }
这个文件主要是定义一个学生类,如果使用Compare排序接口算法,就要在实体类中重写compare方法,能实现对name和id进行升序和降序排序。
文件名:drive.java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator; public class drive {
public static void main(String[] args){
ArrayList<Student> studentlist=new ArrayList<Student>();
Student stu1 = new Student("zhangsan",12);
Student stu2 = new Student("lisi",4);
Student stu3 = new Student("wangwu", 5);
studentlist.add(stu1);
studentlist.add(stu2);
studentlist.add(stu3);
Collections.sort(studentlist);
System.out.println(studentlist.get(0).getName());
System.out.println(studentlist.get(1).getName());
System.out.println(studentlist.get(2).getName()); //方法2,compare比较器接口
ArrayList<Student> studentlist2=new ArrayList<Student>();
Student stu4=new Student("Tom", 13);
Student stu5=new Student("Susan", 4);
Student stu6=new Student("Puse", 41);
studentlist2.add(stu4);
studentlist2.add(stu5);
studentlist2.add(stu6);
Collections.sort(studentlist2, new Comparator<Student>() {
public int compare(Student a,Student b) {
//return a.getId()-b.getId();升序排序
//降序排序
return b.getId()-a.getId();
}
});
System.out.println(studentlist2.get(0).getId());
System.out.println(studentlist2.get(1).getId());
System.out.println(studentlist2.get(2).getId()); }
}
这里使用了方法2的compare比较器接口,可以在main函数中进行排序,运行结果如下

如图,实现了排序
Java的Collection.sort()方法的更多相关文章
- java中Collections.sort()方法实现集合排序
1.Integer/String泛型的List进行排序 List <Integer> integerlist = new ArrayList<Integer>(); //定 ...
- 关于Java中Arrays.sort()方法TLE
最近一直在练用Java写题,今天无意发现一道很简单的二分题(链接),我一开始是直接开int[]数组调用Arrays.sort()去排序,没想到TLE了,原来是因为jdk中对于int[]的排序是使用快速 ...
- Java集合Collection基本方法
jdk1.7 api中的方法摘要: 参考java集合大全图:https://www.cnblogs.com/xkzhangsanx/p/10889114.html Collection为List.Se ...
- JAVA通过使用sort方法排序
java 代码: 对集合排序: //升序public void listSort1(){ List<Integer> list = new ArrayList<Integer> ...
- Java的Arrays.sort()方法到底用的什么排序算法
暂时网上看过很多JDK8中Arrays.sort的底层原理,有些说是插入排序,有些说是归并排序,也有说大于域值用计数排序法,否则就使用插入排序...其实不全对.让我们分析个究竟: 1 // Use Q ...
- Java学习笔记27(集合框架一:ArrayList回顾、Collection接口方法)
集合:集合是java中提供的一种容器,可以用来存储多个数据 集合和数组的区别: 1.数组的长度是固定的,集合的长度是可变的 2.集合中存储的元素必须是引用类型数据 对ArrayList集合的回顾 示例 ...
- java学习笔记20(Arraylist复习,Collection接口方法,迭代器,增强型for循环)
集合:集合是Java提供的一种容器,可以用来存储多个数据: 集合与数组的区别:集合的长度是可变的,数组的长度是固定的 集合中存储的数据必须是引用类型数据: ArrayList回顾: public cl ...
- java中的排序(自定义数据排序)--使用Collections的sort方法
排序:将一组数据按相应的规则 排列 顺序 1.规则: 基本数据类型:日常的大小排序. 引用类型: 内置引用类型(String,Integer..),内部已经指定规则,直接使用即可.---- ...
- Java Collection集合方法
一.简单方法 package cn.itcast.day15; import java.util.ArrayList; import java.util.Arrays; import java.uti ...
随机推荐
- jzoj100031
這題是結論題 好玄學,不懂 代碼: #include<bits/stdc++.h> using namespace std; struct no{ int v,p; bool operat ...
- poj1456---贪心
题目大意: 有n个商品,每个商品有价值和一个最后期限,过了这个期限该商品就不能卖出去了 问你如何去卖,能得到最大的收益.(每个东西卖一天,不能同时卖两种东西) 思路: 贪心: 先按价值对商品排序,价值 ...
- jvm高级特性(4)(内存分配回收策略)
JVM高级特性与实践(四):内存分配 与 回收策略 一. 内存分配 和 回收策略 1,对象内存分配的概念: 往大方向讲,它就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接地栈上分配), ...
- class字节码结构(四)(方法集合的结构)
<Java虚拟机原理图解>1.5. class文件中的方法表集合--method方法在class文件中是怎样组织的 一个类有多个方法,所以方法肯定是一个集合. 目标是: 1,了解方法在字节 ...
- python相见恨晚的库
1)基本工具: virtualenv(虚拟环境)pip.setuptools (e.g. easy_install,这些东西肯定要呢)ipython(用了以后,就不再想用普通的python shell ...
- css四种选择器总结
css 在网页开发中扮演着重要的角色,被誉为网页开发的三剑客,如果说html是人的外在器官部分,那css无疑是各个器官组成在一起然后表现出来,css又称样式重叠在网页排版布局中的地位举足轻重. 做 ...
- OS之进程管理---实时CPU调度
引言 一般来说,我们将实时操作系统区分为软实时系统(soft real-time system)和硬实时系统(hard real-time system).软实时系统不保证会调度关键实时进程,而只保证 ...
- jQuery过滤选择器:first和:first-child的区别,CSS伪类:first-child
最近项目中遇到需求:只在第一列不能删除,不显示小叉号:点击可添加一列,后面的列右上角显示小叉号,可以点击删除. 我是使用以下方法解决这个小需求 :CSS伪类选择器:first-child设置所有小叉号 ...
- QuantLib 金融计算
我的微信:xuruilong100 <Implementing QuantLib>译后记 QuantLib 金融计算 QuantLib 入门 基本组件之 Date 类 基本组件之 Cale ...
- 配置豆瓣镜像作为python 库的下载源
配置豆瓣镜像作为python 库的下载源 Windows 下如下配置: