java linkedlist排序_用Java对用户定义对象的LinkedList进行排序
要使用Java对列表进行排序,可以使用sort(List list) 方法。此方法可以对所有元素必须实现Comparable接口的列表进行排序。
在下面的示例中,House类是用户定义的。为了使其具有可比性,它实现了Comparable接口。通过使用该sort(List list) 方法,可以按升序对其进行排序。
如果要颠倒排序顺序,可以简单地使用sort(List list, Comparator super T> c) 。参数是Collections.reverseOrder()方法。此方法返回一个Comparator,它对实现Comparable接口的对象集合使用自然顺序的相反顺序。由于House类实现了Comparable接口,因此我们可以使用此方法自动颠倒顺序。
importjava.util.Collections;import java.util.LinkedList;import java.util.List;
//sort self-defined object linkedlist in Java
classHouse implements Comparable {
String type;
intsize;
publicHouse(String t, int s) {
type = t;
size = s;
}
@Override
publicintcompareTo(House o) {
intcomparedSize = o.size;
if(this.size > comparedSize) {
return1;
} elseif(this.size == comparedSize) {
return0;
} else{
return-1;
}
}
publicString toString() {
returntype;
}}
publicclassSortLinkedList {
publicstaticvoidmain(String[] args) {
LinkedList houseList = newLinkedList();
houseList.add(newHouse("medium", 200));
houseList.add(newHouse("small", 100));
houseList.add(newHouse("large", 300));
System.out.println(houseList);
// sort in ascending order
Collections.sort(houseList);
System.out.println(houseList);
// sort in descending order
Collections.sort(houseList, Collections.reverseOrder());
System.out.println(houseList);
}
publicstaticvoidprintList(List l) {
for(Object o : l) {
System.out.println(o);
}
}}
输出:
[medium, small, large]
[small, medium, large]
[large, medium, small]
最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。
java linkedlist排序_用Java对用户定义对象的LinkedList进行排序相关推荐
- Java用户定义对象的LinkedList
Java用户定义对象的LinkedList 要在Java中对列表进行排序,可以使用sort(List<T> list) 方法.此方法可以对列表进行排序,其中所有元素都必须实现Compara ...
- java字符串数组排序_在Java中对字符串数组进行排序
允许用户使用字符串数组.他们可以向数组添加字符串,从数组中删除字符串,搜索数组中的字符串,最终他们将能够对数组进行排序.分类是搞砸我的原因.我尝试过几种不同的方法.第一种方法是将数组转换为ArrayL ...
- java数组给名字排序_用Java给数组排序
public class BubbleDemo { public static void main(String[] args) { int arr[]={1,3,5,7,2,4,6,8,9}; bu ...
- java arraylist 无序_关于Java:按字母顺序排序arraylist(不区分大小写)
我有一个包含人名的字符串arraylist names. 我想按字母顺序对arraylist进行排序. ArrayList names = new ArrayList(); names.add(&qu ...
- java核心教程_核心Java教程
java核心教程 Welcome to Core Java Tutorial. I have written a lot on Core Java and Java EE frameworks. Th ...
- java 分割一个_分割java
[java]分割字符串工具类,霸气 jdk自带的 java 分割字符串,分割string,可以根据多个条件去分割.比如逗号,分号,逗号或者分号. 比如一个字符串:"abc,def;gh,ij ...
- java 图片效果_使用Java进行图片底片化效果处理
使用java代码读取图片,并进行底片化处理 util importjava.awt.image.BufferedImage;importjava.io.File;importjava.util.Arr ...
- java path类_基于java Files类和Paths类的用法(详解)
Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream; import java.nio.file.FileSystem ...
- java 重用性_提高Java代码重用性的三个方法
三种修改现有代码提高其可重用性的方法,它们分别是:改写类的实例方法,把参数类型改成接口,选择最简单的参数接口类型. 措施一:改写类的实例方法 通过类继承实现代码重用不是精确的代码重用技术,因此它并不是 ...
最新文章
- mac如何修改php.ini,mac 如何修改php.ini
- Boost asio学习笔记之二—— 网络编程
- 最全的CSS浏览器兼容问题(转至http://68design.net/Web-Guide/HTMLCSS/37154-1.html)
- Android 数据存储和文件使用案例分析
- 《Effective Python 2nd》 读书笔记——列表与字典
- 小榕flash管理器xp 是什么
- 定时器 Corn时间表达式
- 小黑算法成长日记11:基于Johnson算法de最优流水作业调度
- 数据通路——专用数据通路
- 启动windows的mysql_MySQL的启动方法(windows 平台)
- 启用特殊池解读 0x000000c5 蓝屏
- 老板杜绝员工上班不务正业
- Excel中多行一致分类序列号
- “打工人”梗刷爆网络,今天你打工了吗?
- MapKit框架的使用
- 如何加减单元格指定数字_如何把单元格的数值每位数字进行相加?又学会一个Excel技巧...
- HTML5+CSS3的学习(一)
- MacBook如何进行分屏
- Flutter开发日志——初生牛犊
- 闲鱼自动抓取/筛选/发送系统 V13发布
热门文章
- C++实现各种排序算法
- mysql io模型_5种网络IO模型
- 用Visio制作周行事历
- Ethereal使用入门
- python3-泊松分布
- Redefine:Change in the Changing World
- 如何手工删除AD RMS SCP?
- 刚刚写了一个评星的脚本插件,分享给大家
- 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。...
- 毕业设计:Springboot实现疫情宿舍学生管理系统