cdo*_*cdo 3 java arrays instantiation
我正在完成Java课程的作业问题,该课程与实例化,数组和数组数据排序有关.这是一个问题:
创建一个名为的类
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;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我目前为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());
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码似乎工作并显示所有数据,虽然格式不正确.我希望数据看起来如下所示:
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
Run Code Online (Sandbox Code Playgroud)
除了像上面那样格式化输出之外,我还需要根据用户选择对每种数据类型(标题,作者,页面)进行排序.
在这一点上,我只是输了.到目前为止,这高于我的技能水平.我希望有人能给我一些指示/方向,指出在这一点上去哪里.
关于格式化,您只需要一个for循环,它将显示如下所有细节:
for (int x = 0; x < book.length; ++x){
System.out.println(book[x].getBookTitle() + "\t" + book[x].getBookAuthor() + "\t" + book[x].getBookPageCount());
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以一次性获得有关每本书的所有必要信息,每次只用一个句子输出,其值由tabs(\t)分隔.
你正在做的一半循环是没用的,就像这一个:
for (int x = 0; x < book.length; ++x)
book[x].getBookTitle();
Run Code Online (Sandbox Code Playgroud)
你没有在任何变量中获得标题,所以你只是在整个数组上执行一个循环.
对于排序选项,sort如果允许使用它,您可以查看Array 的方法,或者尝试自己实现排序方法,这可能有益于您对数组的知识和对数组的迭代.