具有不同数据类型的数组,即字符串和整数.(Objectorientend)

Gru*_*ear 10 java arrays types object

比如我

3本书: Booknumber (int), Booktitle (string), Booklanguage (string), Bookprice (int).

现在我想要一个名为的数组books[3][4].

我是通过setBooknumber设置的数据,如下所示:
Book1.getBooknumber(), Book1.getBooktitle(),...,Book3.getBookprice().

现在我怎么意识到这一点books[3][4] array.我不能称之为String books[][] = new String [3][4].因为我无法Booknumber (int)进入它.

我不希望Booknumber成为String也不是Bookprice.请问我怎么意识到这一点?

现在进一步阐述它.

我有2节课.

public class book{
String Booktitle, Booklanguage;
int Booknumber, Bookprice;

//constructor

//get

//set
}
Run Code Online (Sandbox Code Playgroud)

public class bookUI
{
 public static void main(String arg[])
 {
   book book1 = new book();
   book book2 = new book();
   book book3 = new book();

   book1.setBooktitle();
   ...
   book3.setBookprice();

   //Here I want to have books[3][4] Array. And gettin the data via book1.get...book3.get into the array
 }
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*ore 29

public class Book
{
    public int number;
    public String title;
    public String language;
    public int price;

    // Add constructor, get, set, as needed.
}
Run Code Online (Sandbox Code Playgroud)

然后将您的数组声明为:

Book[] books = new Book[3];
Run Code Online (Sandbox Code Playgroud)

编辑:为了回应OP的困惑,Book应该是一个对象,而不是一个数组.每本书都应该由它自己创建(通过设计合理的构造函数),然后添加到数组中.实际上,我不会使用数组,而是使用ArrayList.换句话说,您正试图将数据强制转换为不适合手头任务的容器.

我敢说50%的编程是为您的数据选择正确的数据结构.如果有一个很好的结构选择,算法自然会遵循.

正确完成后,您可以将UI类看起来像:编辑:泛型添加到以下代码段中.

...
ArrayList<Book> myLibrary = new ArrayList<Book>();
myLibrary.add(new Book(1, "Thinking In Java", "English", 4999));
myLibrary.add(new Book(2, "Hacking for Fun and Profit", "English", 1099);
Run Code Online (Sandbox Code Playgroud)

等等

现在您可以使用Collections界面并执行以下操作:

int total = 0;
for (Book b : myLibrary)
{
   total += b.price;
   System.out.println(b); // Assuming a valid toString in the Book class
}
System.out.println("The total value of your library is " + total);
Run Code Online (Sandbox Code Playgroud)

  • 我是第二个评论.您应该强烈考虑为此创建自定义类型,而不是将其粘贴到具有通用对象类型的多维数组中.恒定铸造是糟糕设计的标志. (2认同)