【问题标题】:Java How can i add an element into my array?Java 如何将元素添加到我的数组中?
【发布时间】:2023-04-02 11:03:01
【问题描述】:

包含我的数组的构造函数:

public Library(int maxNumberofTextBook)
{
    // initialise instance variables
    nextBook = 0;
    numberOfBorrowers = 0;
    numberOfChapters = 6;
    bookShelf = new Textbook[maxNumberofTextBook + 1];
    for (int i = 0; i < maxNumberofTextBook; i++)
        bookShelf[i] = new Textbook("Text book number" +i, numberOfChapters);
}

在这种方法中,我希望数组接受参数输入并将其添加到上面的数组中:

public void returnBook(Textbook book)
{
    //add book into array//
    numberOfBorrowers -- ; 
    bookInShelf ++ ; 
}

【问题讨论】:

    标签: java bluej


    【解决方案1】:

    从您的示例中,我看到您使用的是原始 fixed-size array

      Textbook bookShelf []  =  new Textbook [maxNumberofTextBook];
    

    要添加一个新的对象,你只需分配它(ArrayOutOfBoundException 可能会被抛出)

    public void returnBook(Textbook book)
        {
         if(bookInShelf  < maxNumberofTextBook ){ //just to avoid the exception
             bookShelf[maxNumberofTextBook - 1] = book;
             numberOfBorrowers -- ; 
             bookInShelf ++ ; 
         }
    
        }
    

    【讨论】:

    • 对于这个作业,讲师告诉我们不要使用数组列表,所以我一直在避免这种情况,这也是什么时候输入书中的参数输入
    • 好的,那么数组中的书籍位置呢?
    • 我现在似乎掌握了窍门,chers 终于做了 bookShelf[nextBook] = null;将位置设置为 null 或将值设置为 null?
    • bookShelf[nextBook] = null 是这个位置的Object会为null,如果要打印它们需要处理null检查(避免空指针异常)
    【解决方案2】:

    这是一个指导,不要指望别人做你的功课......

    首先,你的要求有点不明确,所以首先,最重要的一步就是要明确“心智模型”!

    假设您想要一个如下所示的系统:

    • 图书馆有一组已知的书名
    • 对于每本书:都有一个独特的“书架”,该书名的所有书籍都放置在其中
    • 对于每个书名:实际书籍的数量

    现在,你必须考虑什么:

    • 借书意味着:减少该书架位置上实际图书实例的数量,并增加该书名的借书计数器
    • 归还的意思是相反的:增加“书架数”计数器,减少“借书”计数器。

    所以,你要做的是:仔细查看你的代码,并确保你可以表达以上所有这些方面。

    换句话说,你需要可以表达的代码:

    • “这本书叫白鲸”
    • “Moby Dick 坐在 5 号架子上”
    • 目前,5 个“白鲸记”实例已上架
    • 目前,3 个“白鲸记”实例已向借款人“出局”

    【讨论】:

      猜你喜欢
      • 2015-05-14
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 2021-07-23
      • 1970-01-01
      • 2010-10-19
      • 1970-01-01
      • 2021-12-04
      相关资源
      最近更新 更多