Java List 排序
2023-09-11 14:16:16 时间
package ersatz;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
public class Ersatz {
public static void main(String[] args) {
List list = new LinkedList();
list.add(new Book("a", "aa", 100));
list.add(new Book("b", "bb", 10));
list.add(new Book("c", "cc", 19));
list.add(new Book("d", "dd", 80));
sort(list, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
Book b1 = (Book) o1;
Book b2 = (Book) o2;
if (b1.getPrice() > b2.getPrice()) {
return 1;
} else if (b1.getPrice() < b2.getPrice()) {
return -1;
} else {
return 0;
}
}
});
for (Object value : list) {
System.out.println(value);
}
sort(list, new Comparator() {
@Override
public int compare(Object b, Object p) {
Book b1 = (Book) b;
Book b2 = (Book) p;
if (b1.getPrice() > b2.getPrice()) {
return -1;
} else if (b1.getPrice() < b2.getPrice()) {
return 1;
} else {
return 0;
}
}
});
for (Object value : list) {
System.out.println(value);
}
}
public static void sort(List list, Comparator comparator) {
int size = list.size();
for (int i = 0; i < size - 1; ++i) {
for (int j = 0; j < size - 1 - i; ++j) {
Book b1 = (Book) list.get(j);
Book b2 = (Book) list.get(j + 1);
if (comparator.compare(b1, b2) > 0) {
list.set(j, b2);
list.set(j + 1, b1);
}
}
}
}
}
class Book {
private String name;
private String author;
private double price;
@Override
public String toString() {
return "名称:" + name + "\t\t价格:" + price + "\t\t作者:" + author;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public Book(String name, String author, double price) {
this.name = name;
this.author = author;
this.price = price;
}
}
相关文章
- java虚拟机学习-JVM内存管理:深入Java内存区域与OOM(3)
- java - 详解 Java 17 中新推出的密封类
- Java 使用 Redis
- Java POST请求MutliPartFile上传时最大文件限制报错及解决
- java.io.FileNotFoundException: /exapp/hadoop/name/current/VERSION (Permission denied)
- JAVA基础--Java枚举+位操作,巧妙判断是否设置
- java Collections.sort()实现List排序自定义方法
- 【Java】List去重 / 删除ArrayList中重复元素,保持顺序 / 提取两个list中不同的元素
- java中判断list是否为空的用法
- 【JAVA UI】【HarmonyOS】【Demo】 鸿蒙如何进行xml解析
- java整理软件--- Java OCR 图像智能字符识别技术,可识别中文,但是验证码不可以识别...已测识别中文效果很好
- 2013第38周日Java文件上传下载收集思考
- Java之throw和throws的区别及java中的异常处理
- java使用jdk8的Stream来获取list集合的最小值、最大值、总和、平均数
- 使用JUnit来测试Java代码中的异常
- java学习路线-Java技术人员之路从0基础到高级
- 【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
- 憋了许久,终究还是对Java集合下手了!最全List、Set、Map集合讲解,内含集合导图
- 2016最流行的Java EE服务器
- Java的集合排序:Collections.sort、list.sort和list.stream().sorted方法详解