java - 我们可以在 Java 中的类中创建该类的 ArrayList 吗?

标签 java arraylist

萨拉姆!

在java中,我需要在该类中创建一个类的ArrayList。是否可以??? 据我所知,如果我在该类构造函数中创建一个类的对象,那么它将导致 StackOverFlow。下面给出了问题的完整细节。我如何在该类本身中创建 BookInfo 类的 ArrayList???

问题陈述:
您需要编写一个java程序,其中仅包含两个名为“BookInfo”和“BookMgtSys”的类。

BookInfo 类必须具有以下数据成员: • 国际标准书号 • 书名 • 作者姓名 • 书籍总数 当您添加书籍时,它将增加变量“总书籍”,并在您删除书籍时减少。

BookInfo 类必须具有以下成员方法: • 默认构造函数 • 参数化构造函数 • 添加簿()
• 搜索图书 () •deleteBook()

BookMgtSys 是一个公共(public)驱动程序类,包含 main() 方法。文件的名称应该是 BookMgtSys,因为它是程序中的公共(public)类。

详细说明:

默认构造函数:默认构造函数将创建一个 ArrayList。

参数化构造函数:它应该采用三个名为(ISBN、图书名称和作者姓名)的字符串参数,并使用传递的参数初始化数据成员值。 addBook():此方法将要求用户输入 ISBN、图书名称和作者姓名,然后将图书添加到 ArrayList 中并增加 Total Book 变量。成功添加图书后,应显示一个包含图书信息的消息框。 searchBook():该方法接受一个参数,即书名,并在ArrayList中搜索书名。如果找到搜索则显示书籍信息,否则显示未找到书籍的消息。 deleteBook():该方法采用一个参数,即书名,并从 ArrayList 中删除该书,然后递减 Total Book 变量。

感谢您的热心帮助。

代码如下。但它不能编译。它给出以下错误:

C:\Code>javac BookMgtSys.java BookMgtSys.java:39: error: -> expected bookList = new ArrayList() (); ^ BookMgtSys.java:39: error: ';' expected bookList = new ArrayList() (); ^ BookMgtSys.java:67: error: reached end of file while parsing } ^ 3 errors

import javax.swing.*;
import java.util.*;
public class BookMgtSys
{
public static void main(String[] args)
{

System.out.println("Bismillah");
BookInfo Books=new BookInfo();
String  UserOption = JOptionPane.showInputDialog("Enter 1 to Add Book\r\nEnter 2 to Search Book\r\nEnter 3 to Delete Book\r\nEnter 4 to Exit System");
switch(UserOption)
{
    case "1":
    //  Books.addbook();
    break;
    case "2":
    break;
    case "3":
    break;
    case "4":
    break;

}
//JOptionPane.showMessageDialog(null, "You entered " + ipstring);
}
}
class BookInfo
{
 String ISBN;
 String BookName;
 String AuthorName;
 static int TotalBooks;
ArrayList<BookInfo> bookList;
//constructor
// ArrayList<BookInfo> bookList;
//BookInfo class must have the following member methods:
public BookInfo()
{
    bookList = new ArrayList() <BookInfo>();
//persons = new ArrayList()<PersonInfo>();
}
// public void BookInfo(String ISBN, String BookName, String AuthorName)
// {
// this.ISBN=ISBN;
// this.BookName=BookName;
// this.AuthorName=AuthorName;
// TotalBooks++;
// }
 // public void addbook ()
 // {
     // // this.ISBN=JOptionPane.showInputDialog("Enter The ISBN");
     // // this.BookName=JOptionPane.showInputDialog("Enter The Name");
     // // this.AuthorName=JOptionPane.showInputDialog("Enter The Author");

      // TotalBooks++;
 // }
// public void searchBook ()
// {

// }
// public void deleteBook ()
// {
    // if(TotalBooks>0)
        // TotalBooks--;
// }

}

最佳答案

创建 ArrayList<T>在类 T 的构造函数内不会创建递归循环,因为您没有创建 T 的其他实例,只是一个容器,您可以稍后在其中添加 T实例。

关于java - 我们可以在 Java 中的类中创建该类的 ArrayList 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33846445/

相关文章:

java - 网络圈。获取线程池ID

java - 如何检查一个图形是否与另一个图形重叠?

java - 将指定格式的文件读入ArrayList

Java:ArrayList如何管理内存

java - 正则表达式、java char + 空格和 char + 符号

java - 没有选择数据库 GAE

java - Java 运行时库 (rt.jar) 中的断点

java - 从使用外部类的 ArrayList 获取变量

java - 按字母顺序对 <Player> ArrayList 名称进行排序

java - android 在尝试绘制到 Canvas 时出现错误