ArrayList集合如何实现升序和降序

public class Test_ArrayList {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        list.add(116);
        list.add(111);
        list.add(115);
        list.add(113);
        list.add(114);
        //不会排序,填入什么输出什么
        System.out.println("原值输出:"+list);

        //升序
        Collections.sort(list);
        System.out.println("升序后的结果:"+list);

        //降序
        Collections.sort(list, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2-o1;
            }
        });
        System.out.println("降序后的结果:"+list);
        
        //乱序
        Collections.shuffle(list);
        System.out.println("乱序后的结果:"+list);
    }
}

结果:
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我可以帮你回答这个问题。 首先,你可以使用 Java 中的 ArrayList 类来创建一个保存书籍信息的集合。在 ArrayList 中,每个元素都是一个 Book 对象,Book 对象包含书籍的编号、名称、作者等信息。 接下来,你可以实现 addBook 方法来添加书籍信息。addBook 方法接收一个 Book 对象作为参数,然后使用 ArrayList 的 add 方法将其添加到集合中。 排可以使用 Collections 类中的 sort 方法来实现。你可以实现 sortByID 方法,该方法接收一个 boolean 类型的参数,true 表示升序,false 表示。在 sortByID 方法中,你可以先实现一个 Comparator 接口,按照书籍编号进行比较,并根据传入的参数决定升序方式。然后,使用 Collections 的 sort 方法进行排。 最后,你可以实现 printBooksInfo 方法来输出所有书籍的信息。使用 for 循环遍历 ArrayList 中的每个 Book 对象,并打印输出其信息即可。 下面是代码示例: ``` import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; public class Book { private int id; private String name; private String author; public Book(int id, String name, String author) { this.id = id; this.name = name; this.author = author; } // getters and setters public static void main(String[] args) { ArrayList<Book> books = new ArrayList<Book>(); books.add(new Book(2, "Java Basics", "John Doe")); books.add(new Book(1, "Python for Beginners", "Jane Smith")); books.add(new Book(3, "C++ Programming", "Bob Johnson")); sortByID(books, true); // sort by ID in ascending order printBooksInfo(books); } public static void addBook(ArrayList<Book> books, Book book) { books.add(book); } public static void sortByID(ArrayList<Book> books, boolean ascending) { Comparator<Book> comparator = new Comparator<Book>() { @Override public int compare(Book b1, Book b2) { if (ascending) { return b1.getId() - b2.getId(); } else { return b2.getId() - b1.getId(); } } }; Collections.sort(books, comparator); } public static void printBooksInfo(ArrayList<Book> books) { for (Book book : books) { System.out.println("Book ID: " + book.getId()); System.out.println("Book Name: " + book.getName()); System.out.println("Book Author: " + book.getAuthor()); System.out.println("------------------------"); } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值