java对ArrayList排序代码示例
作者:sunmenggmail 发布时间:2023-11-24 20:14:21
标签:java,arraylist,排序
不废话了,直接给大家贴代码了。
class term {
String str;
int id;
public term(String str, int id) {
this.str = str;
this.id = id;
}
public String toString() {
return str+" "+id;
}
}
class sterm implements Comparable{
String str;
int id;
public sterm(String str, int id) {
this.str = str;
this.id = id;
}
public int compareTo(Object o) {
return ((sterm)o).id - id;
}
public String toString() {
return str+" "+id;
}
}
//method1: explicit implements Comparator
class termComparator implements Comparator {
public int compare (Object o1, Object o2) {
return ((term)o1).id - ((term)o2).id;
}
}
public class t1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// ArrayList<Integer> arr = new ArrayList<Integer>( Arrays.asList(3,1,3,7,8,0));
//
// Collections.sort(arr, new Comparator(){
//
// public int compare(Object o1, Object o2){
// return new Double((Integer)o1).compareTo(new Double ((Integer)o2));
// }
// });
//method1
List<term> ls = new ArrayList<term>();
ls.add(new term("a",1));
ls.add(new term("b",5));
ls.add(new term("c",2));
ls.add(new term("d",2));
ls.add(new term("e",3));
ls.add(new term("f",0));
Collections.sort(ls, new termComparator());
System.out.println(ls);//[f 0, a 1, c 2, d 2, e 3, b 5]
//method2: anonymous implements
Collections.sort(ls, new Comparator(){
public int compare(Object o1, Object o2){
return ((term)o2).id - ((term)o1).id;
}
});
System.out.println(ls);//[b 5, e 3, c 2, d 2, a 1, f 0]
//method3:instantiate a Comparator template
Comparator<term> termCmp = new Comparator<term>() {
public int compare(term t1, term t2) {
return t1.id - t2.id;
}
};
Collections.sort(ls, termCmp);
System.out.println(ls);//[f 0, a 1, c 2, d 2, e 3, b 5]
//method4:element implements Comparable
List<sterm> lss = new ArrayList<sterm>();
lss.add(new sterm("a",1));
lss.add(new sterm("b",5));
lss.add(new sterm("c",2));
lss.add(new sterm("d",2));
lss.add(new sterm("e",3));
lss.add(new sterm("f",0));
Collections.sort(lss);
System.out.println(lss);//[b 5, e 3, c 2, d 2, a 1, f 0]
}
}
PrioriyQueue的用法和上述的排序类似,有三种方法:
class WordFreq implements Comparable{
public String wd;
public int freq;
public WordFreq(String wd, int freq) {
this.wd = wd;
this.freq = freq;
}
public int compareTo(Object o) {
return ((WordFreq)o).freq - freq;
}
public String toString() {
return wd+" "+freq;
}
}
public class testt {
public static void main(String[] args) {
// TODO Auto-generated method stub
PriorityQueue<WordFreq> pq = new PriorityQueue<WordFreq>();
pq.offer(new WordFreq("aaa", 3));
pq.offer(new WordFreq("bbb", 4));
pq.offer(new WordFreq("ccc",1));
while(pq.peek() != null) {
System.out.println(pq.poll());
}//从大到小输出
}
}
注意,
for (WordFreq wf : pq) {
System.out.println(wf);
}
并不保证遍历的有序
如果List<String> ls 进行排序的话,不需要写Comparator, 因为String本身有compareTo的实现。
0
投稿
猜你喜欢
- 前言回老家,实在太无聊,于是乎给自己整了一套台式机配置,总价 1W+,本以为机器到位后可以打打游戏,学学技术打发无聊的时光。但是我早已不是从
- webp格式图片webp格式图片是google推出的,相比jpg png有着巨大的优势,同样质量的图片webp格式的图片占用空间更小,在像电
- 上一次接触到编码的知识,还是上大学的时候,那时候学的是通信工程专业,有关编码的内容,不记得是在通信原理还是信息论与编码里面学到的了。却依然记
- 一、前言文稿扫描大家用的都比较频繁、想是各种证件、文件都可以通过扫描文稿功能保存到手机。相比直接拍照,在扫描文稿时,程序会对图像进行一些矫正
- FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件
- 1.打开官网稍微学习一下,了解一下spring cloud是个什么东西,大概有哪些组件等https://spring.io/projects
- 如图所示的效果相信大家都不陌生,我们可以使用很多种方法去实现此效果,这里自己采用CountDownTimer定时器简单封装下此效果,方便我们
- Handler每个初学Android开发的都绕不开Handler这个“坎”,为什么说是个坎呢,首先这是Android架构的精髓之一,其次大部
- 这几天做项目,有些地方的图片需要用到圆形图片,所以百度了一下,在github上找到一个开源项目,处理很简单,效果如下:使用起来特别简单,一共
- [LeetCode] 5. Longest Palindromic Substring 最长回文子串Given a string
- 本文主要探究的是关于Bean的作用域、生命周期的相关内容,具体如下。Bean的作用域Spring 3中为Bean定义了5中作用域,分别为si
- 1.概述数据库开发一直是JAVA开发的核心之一,作为现在JAVA EE的基石框架,Spring Boot自身携带了一个JDBCTemplat
- 逆时针画圆弧,原理:将360度分割成36份,分别标出每10度角度时的坐标点,然后将每个点连接起来。 #include <io
- C语言/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,和time()函数。需要说明的是,iostream头文件
- 前2天有读者问到是否有带分页功能的表格控件,今天分页功能的表格控件详细解析。PaginatedDataTablePaginatedDataT
- C++对string进行大小写转换操作方法方法一:使用C语言之前的方法,使用函数,进行转换#include <iostream>
- 1、原理事务的概念想必大家都很清楚,其ACID特性在开发过程中占有重要的地位。同时在并发过程中会出现一些一致性问题,为了解决一致性问题,也出
- 1、Jetbrains官网下载IntelliJ IDEA1.1 官方网站http://www.jetbrains.com/idea/&nbs
- java 网络编程java.net 类 InetAddress 此类表示互联网协议 (IP) 地址。 会抛出异常 UnknownHostEx
- 一、 Sharding-jdbc简介“Sharding-jdbc是开源的数据库操作中间件;定位为轻量级Java框架,在Java的JDBC层提