如何按字母顺序或数字顺序(IF参数)对IF语句中的数组进行排序?请注意,Arrays.sort()
在使用时不会编译。我正在尝试对RETURNED值进行排序,而不是初始输入。
import java.util.Arrays;
import java.util.Scanner;
public class LibraryBookSort
{
public static void main(String[] args)
{
String title, author;
int x;
int pages, sortBy;
LibraryBook[] titleArray = new LibraryBook[5];
LibraryBook[] authorArray = new LibraryBook[5];
LibraryBook[] pagesArray = new LibraryBook[5];
for (x = 0; x < 5; x++)
{
titleArray[x] = new LibraryBook();
authorArray[x] = new LibraryBook();
pagesArray[x] = new LibraryBook();
}
//User Input
Scanner input = new Scanner(System.in);
for (x = 0; x < 5; x++)
{
//TitleInput
System.out.print("Enter the title of a book: ");
title = input.nextLine();
titleArray[x].setBook(title);
//Author Input
System.out.print("Enter the author of this book: ");
author = input.nextLine();
authorArray[x].setAuthor(author);
//Page Input
System.out.print("Enter the number of pages for this book: ");
pages = input.nextInt();
pagesArray[x].setPages(pages);
input.nextLine();
}
//Book Organize input
System.out.println("How would you like to organize your values?");
System.out.println("Sort by title > Enter 1: ");
System.out.println("Sort by author's last name > Enter 2: ");
System.out.print("Sort by page count > Enter 3: ");
sortBy = input.nextInt();
// Sort by title
if(sortBy == 1)
{
for(x = 0; x < 5; x++)
{
System.out.println();
System.out.println("Book ");
System.out.println("Title: " + titleArray[x].getBook());
System.out.println("Author: " + authorArray[x].getAuthor());
System.out.println("Page Count: " + pagesArray[x].getPages());
}
}
// Sort by author
else
if(sortBy == 2)
{
for(x = 0; x < 5; x++)
{
System.out.println();
System.out.println("Book ");
System.out.println("Author: " + authorArray[x].getAuthor());
System.out.println("Title: " + titleArray[x].getBook());
System.out.println("Page Count: " + pagesArray[x].getPages());
}
}
// Sort by page count
else
if(sortBy == 3)
{
for(x = 0; x < 5; x++)
{
System.out.println();
System.out.println("Book ");
System.out.println("Page Count: " + pagesArray[x].getPages());
System.out.println("Title: " + titleArray[x].getBook());
System.out.println("Author: " + authorArray[x].getAuthor());
}
}
}
}
答案 0 :(得分:0)
如果Arrays.sort
无法编译,那么你就是在做错了。在任何情况下,您都需要定义自定义Comparator<LibraryBook>
对象,每个对象都比较相关字段,然后使用这些对象进行排序。如果你要保留多个数据结构,也可以使它们成为SortedSet
而不是普通数组。