繁体   English   中英

如何按字母顺序然后按数字对ArrayList进行排序

[英]How to sort ArrayList alphabetically then by number

这是排序之前的样子。 书名,年出版

在此处输入图片说明

我想按字母顺序对标题进行排序,然后再发布年份。
这是我当前排序之前的编码:

    ArrayList BookList = new ArrayList();
    BufferedReader br = new BufferedReader (new FileReader ("bookInput.txt"));

    String str = br.readLine();
    while (str!=null){
        StringTokenizer st = new StringTokenizer(str,";");
        String title = st.nextToken();
        String yr = st.nextToken();
        int year = Integer.parseInt(yr);
        Book b1 = new Book (title,year);
        BookList.add(b1);
        str = br.readLine();
    }
    br.close();

    //3(d)
    System.out.println("List of Books" + "( " + BookList.size() + " record(s) ) ");
    for (int i = 0; i < BookList.size(); i++){
        Book b2 = (Book)BookList.get(i);
        System.out.println("#" + (i+1) + " " + b2.getTitle() + " , " + b2.getYear());
    }

我已经尝试了一切我知道的但是失败了failed

您可以使用Comparator链,假设Book类具有吸气剂:

BookList.sort(Comparator.comparing(Book::getTitle)
                        .thenComparingInt(Book::getYear));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM