Java 书店库存数组书名排序问题
我通常试图研究和学习,但我遇到了困难。 学校作业要求我们建立一个数组来保存书店信息,然后让我们按书名排序 我不确定我是否做对了数组,我真的可以使用一些排序这个数组的技巧 //////////////////////////////////////迄今为止的代码 ///书店类Java 书店库存数组书名排序问题,java,arrays,sorting,inventory,Java,Arrays,Sorting,Inventory,我通常试图研究和学习,但我遇到了困难。 学校作业要求我们建立一个数组来保存书店信息,然后让我们按书名排序 我不确定我是否做对了数组,我真的可以使用一些排序这个数组的技巧 //////////////////////////////////////迄今为止的代码 ///书店类 import java.util.Arrays; @SuppressWarnings("unused") public class BookStore {//BookStore class public static voi
import java.util.Arrays;
@SuppressWarnings("unused")
public class BookStore {//BookStore class
public static void main(String args[]) {
//排列
Book[] Books = new Book[5];
Books[0] = new Book(9780007525492L,"B book","J. R. R. Tolkien",2013,"Harper Collins", 5.00);
Books[1] = new Book(9780007525492L,"D book","J. R. R. Tolkien",2013,"Harper Collins", 5.00);
Books[2] = new EBook(9780007525492L,"C book","J. R. R. Tolkien",2013,"Harper Collins", 5.00,"www.amazon.com");
Books[3] = new Book(9780007525492L,"A book","J. R. R. Tolkien",2013,"Harper Collins", 5.00);
Books[4] = new EBook(9780007525492L,"E book","J. R. R. Tolkien",2013,"Harper Collins", 5.00,"www.amazon.com");
//分类
//输出
System.out.print("Bookstore Items:\n");
for (int counter=0;counter<Books.length;counter++){
System.out.println(Books[counter]);
}
//书籍的构造器
Book(long number, String bname, String aname, int year, String pname, double cost)
{
isbnNumber = number;
bookName = bname;
authName = aname;
pubName = pname;
pubYear = year;
price = cost;
}
//getisbnNumber:获取isbn
public long getIsbnNumber()
{
return isbnNumber;
}
//setisbnNumber:设置isbn
public void setIsbnNumber(long number)
{
}
//getbookName:获取书籍名称
public String getBookName()
{
return bookName;
}
public void setBookName(String bname)
{
}
//设置书名
public String getBookName()
{
return bookName;
}
public void setBookName(String bname)
{
}
//getauthName:获取作者名称
public String getAuthName()
{
return authName;
}
//setAuthName:设置作者名称
public void setAuthName(String aname)
{
}
//getpubName:获取发布服务器名称
public String getpubName()
{
return pubName;
}
//setpubName:设置发布服务器名称
public void setPubName(String pname)
{
}
//getPrice:返回书籍的价格
public double getPrice()
{
return price;
}
public void setPrice(int cost)
{
}
//设置价格:设置书籍的价格
public double getPrice()
{
return price;
}
public void setPrice(int cost)
{
}
//getpubYear:每年发布一次
public int getPubYear()
{
return pubYear;
}
public void setPubYear(int year)
{
}
//setpubYear:设置发布年份
public int getPubYear()
{
return pubYear;
}
public void setPubYear(int year)
{
}
//用于显示的单个项目的打印输出
public String toString(){
return String.format("\n\n%s\t%s\n%s\t\t%s\n%s\t\t%s\n%s\t\t%d\n%s\t%s\n%s\t\t$%,.2f ","ISBN:\t", getIsbnNumber(),
"Title:", getBookName(), "Author:", getAuthName(),"Year:", getPubYear(), "Publisher:", getAuthName(), "Price:", getPrice());
}
}
//电子书子类
class EBook extends Book{
private String webSite;//web url
private String getWebSite() {
return webSite;
}
private double getDiscount() {
return discount;
}
private double discount;
//EBook constructor
EBook(long number, String bname, String aname, int year, String pname,
double cost, String web) {super(number, bname, aname, year, pname, cost);
discount = cost*.10;
webSite = web;
}
public String toString(){
return
String.format("\n\n%s\t%s\n%s\t\t%s\n%s\t\t%s\n%s\t\t%d\n%s\t%s\n%s\t\t$%,.2f\n%s\t%s\n%s\t$%,.2f ","ISBN:\t", getIsbnNumber(),"Title:", getBookName(), "Author:", getAuthName(),"Year:", getPubYear(), "Publisher:", getAuthName(), "Price:", getPrice(), "Website:",getWebSite(),"Discount:", getDiscount());
}
}
/////////////////////////////////////程序输出
书店商品: 国际标准书号:9780007525492 书名:B书 作者:J.R.R.托尔金 年份:2013年 出版商:J.R.R.托尔金 价格:$5 国际标准书号:9780007525492 书名:D书 作者:J.R.R.托尔金 年份:2013年 出版商:J.R.R.托尔金 价格:$5 国际标准书号:9780007525492 标题:C书 作者:J.R.R.托尔金 年份:2013年 出版商:J.R.R.托尔金 价格:$5 网站:www.amazon.com 折扣:0.50美元 国际标准书号:9780007525492 书名:一本书 作者:J.R.R.托尔金 年份:2013年 出版商:J.R.R.托尔金 价格:$5 国际标准书号:9780007525492 标题:电子书 作者:J.R.R.托尔金 年份:2013年 出版商:J.R.R.托尔金 价格:$5 网站:www.amazon.com 折扣:0.50美元
总库存价值:$25.00您的阵列看起来不错。没什么不对的 排序数组并不是那么难。在谷歌上搜索第二个答案。 如您所见,排序使用数字和字符。 所以在你的例子中,它看起来像这样:
Books.sort(bookName);
我希望这解决了您的问题。您可以这样进行排序:
Books.sort(bookName);
1) 在书中实现接口
类:
public class Book implements Comparable<Book>{
@Override
public int compareTo(Book book) {
return this.bookName.compareTo(book.bookName);
}
}
你的排序代码在哪里?你要解决的问题是什么?发布这些详细信息。要进行排序,你应该看看Arrays类的名称。可能重复感谢所有这些答案我真的非常感谢你的努力。但我只是自己想出来的。我很沮丧,走出去喂狗,清醒了头脑,然后再试一次。所以它现在起作用了。谢谢你,太好了。但是你能帮我标出正确的答案吗,或者告诉我们你是怎么做到的?