【问题标题】:How to use ArrayList[] - Array of ArrayList? [duplicate]如何使用 ArrayList[] - ArrayList 的数组? [复制]
【发布时间】:2015-11-18 19:19:24
【问题描述】:

嗯,这是一个有点愚蠢的问题,但我想探索一些新的东西,这就是为什么发布这个问题。请!在将其标记为重复或不相关之前发布您的答案。

Q:当ArrayList在其他类,ArrayList在main()中时,如何特别使用ArrayList?

class ArrayListDemo {

private ArrayList<Type> arrList = new ArrayList<Type>();

public void addItem(Type x) { 
       arrList.add(x);
       System.out.println("Type Added: " + x);
    }
}

现在,main() 是这样的:

public void main(String[] args) {
       ArrayListDemo[] arr = new ArrayListDemo[10];
       Type x = somethingSilly;
       arr[0].addItem(x);      // <-- java.lang.NullPointerException
}

我缺少什么或这有什么问题? 我知道,有更好的选择,例如可用的 List 等,但我的任务是通过 ArrayList 的数组来完成。

【问题讨论】:

  • 代码混乱。类必须以大写开头:所以它是类 ArrayListDemo。编辑您的代码和问题
  • @AlexWien 他们实际上不必这样做,但我同意他们应该这样做。
  • @AlexWien 他们不必这样做,但它更可取,因为它提高了代码的可读性。
  • “必须”这个词与编译器无关,而是与推荐的最小 java 风格有关。
  • 先生,这只是一个示例代码。在实际代码中,关于“命名约定”的一切都很完美。

标签: java arrays class arraylist


【解决方案1】:

arr[0] 为空,因为您没有填充数组。人口代码示例:

for ( ArrayList< Type > list : arr)
        list = new ArrayList< Type >( );

【讨论】:

  • 我没听懂。这应该在哪里完成?在 main() 中还是在课堂上?
  • @I_have_No_Life 在你初始化(创建)arr 变量之后但在你与之交互之前(arr.something())。
【解决方案2】:

因为:

arrayListDemo[] arr = new arrayListDemo[10];

只是创建了一个arrayListDemos 的10 元素数组,但实际上并没有分配任何东西,所以每个元素的值都是null 的默认值。

【讨论】:

    猜你喜欢
    • 2016-01-13
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 2013-02-28
    • 2019-11-28
    • 2013-05-09
    • 2020-03-06
    • 1970-01-01
    相关资源
    最近更新 更多