这里已书的价格从小到大排序为例(使用到的技术点:冒泡)
package com.ljh;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author ljh
* @date 2021/4/20 11:11
*/
public class ListTest {
public static void main(String[] args) {
List<Book> list = new ArrayList<>();
list.add(new Book("三国演义", 17.0));
list.add(new Book("三国演义", 18.9));
list.add(new Book("三国演义", 13.9));
list.add(new Book("三国演义", 188.9));
List<Book> sort = sort(list);
for (Book book : sort) {
System.out.println("book = " + book);
}
}
public static List<Book> sort(List<Book> list) {
int size = list.size();
boolean flag = false;
// 技术点:使用冒泡排序
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - 1 - i; j++) {
Book book1 = list.get(j);
Book book2 = list.get(j + 1);
if (book1.getPrice() > book2.getPrice()) {
flag = true;
list.set(j, book2);
list.set(j + 1, book1);
}
}
// 对冒泡进行优化
if (!flag) {
break;
} else {
flag = false;
}
}
return list;
}
}
@Data
@AllArgsConstructor
class Book {
private String name;
private Double price;
}
结果