我正在完成Java class 的作业问题,该 class 与实例化,数组和数组数据排序有关。这是问题:
创建一个名为LibraryBook
的类,其中包含要保留的字段
设置和获取LibraryBook
的标题,作者和方法
页数。将文件另存为LibraryBook.java。
编写一个实例化五个LibraryBook
对象的应用程序,并
提示用户输入数据字段的值。然后提示用户
输入LibraryBooks
应该按-标题排序的字段,
作者或页面数。执行请求的排序过程,然后
显示LibraryBook
对象。将文件另存为
LibraryBookSort.java。
除了这本书,教授还增加了以下标准:
声明一个LibraryBook
对象数组,并对它们进行排序
标题,作者或页面数,应用户要求。
这是我为LibraryBook.java编写的代码:
public class LibraryBook
{
String bookTitle;
String bookAuthor;
int bookPageCount;
public LibraryBook(String title, String author, int count)
{
bookTitle = title;
bookAuthor = author;
bookPageCount = count;
}
public String getBookTitle()
{
return bookTitle;
}
public String getBookAuthor()
{
return bookAuthor;
}
public int getBookPageCount()
{
return bookPageCount;
}
}
这是我到目前为止为LibraryBookSort.java编写的代码:
import java.util.Arrays;
import java.util.Scanner;
public class LibraryBookSort
{
public static void main(String[] args)
{
LibraryBook[] book = new LibraryBook[5];
book[0] = new LibraryBook("Java Programming", "Joyce Farrell", 881);
book[1] = new LibraryBook("Team Of Rivals", "Dorris Kearns Goodwin", 994);
book[2] = new LibraryBook("1776", "Daivd McCullough", 400);
book[3] = new LibraryBook("No Ordinary Time", "Dorris Kearns Goodwin", 768);
book[4] = new LibraryBook("Steve Jobs", "Walter Isaacson", 656);
for (int x = 0; x < book.length; ++x)
book[x].getBookTitle();
for (int x = 0; x < book.length; ++x)
System.out.println(book[x].getBookTitle());
for (int x = 0; x < book.length; ++x)
book[x].getBookAuthor();
for (int x = 0; x < book.length; ++x)
System.out.println(book[x].getBookAuthor());
for (int x = 0; x < book.length; ++x)
book[x].getBookPageCount();
for (int x = 0; x < book.length; ++x)
System.out.println(book[x].getBookPageCount());
}
}
上面的代码似乎可以正常工作并显示所有数据,尽管格式不正确。我希望数据如下所示:
Java Programming Joyce Farrel 881
Team Of Rivals Dorris Kearns Goodwin 994
1776 Daivd McCullough 400
No Ordinary Time Dorris Kearns Goodwin 768
Steve Jobs Walter Isaacson 656
除了像上面那样格式化输出之外,我还需要使每种数据类型(标题,作者,页面)都可以通过用户选择进行排序。
在这一点上,我只是迷路了。到目前为止,这已经超出了我的技能水平。我希望有人可以给我一些指示/方向,以说明目前的去向。
最佳答案
关于格式,您只需要一个for
循环即可显示所有详细信息,如下所示:
for (int x = 0; x < book.length; ++x){
System.out.println(book[x].getBookTitle() + "\t" + book[x].getBookAuthor() + "\t" + book[x].getBookPageCount());
}
这样一来,您就可以一次获得有关每本书的所有必要信息,这些信息每次都用一个句子输出,其值由制表符(
\t
)分隔。您现在正在执行的循环有一半是无用的,就像这样:
for (int x = 0; x < book.length; ++x)
book[x].getBookTitle();
您没有在任何变量中获得标题,因此您只是在整个数组上执行循环而已。
对于排序选项,您可以查看Array的
sort
方法(如果允许使用),或者尝试自己实现排序方法,这可能会有助于您了解数组以及对数组进行迭代。