【发布时间】:2014-11-03 22:12:32
【问题描述】:
如果我查看什么是 ArrayList 以及如何使用它,我经常会感到困惑。例如,当我看到这个时,我会感到害怕:
new ArrayList<Element>(Arrays.asList(array))
作为初学者,我对 ArrayLists 的理解可能存在一些差距。例如:<> 代表什么?它有特殊意义吗?它是如何在内部表示的? (例如:我认为变量表示内存中的一个位置,数组变量表示内存中的起始位置,数组的索引表示距离该起始位置还有多远。)
我认为需要 ArrayList 的示例:
(我试图创建一个用户输入的整数数组。用户输入一次是一个整数,结束条件是用户输入零时endSign = 0。)不允许在创建后重新调整数组大小,我搜索了一种解决方案来创建动态长度的数组。如果我理解正确的话,如果我最后将 ArrayList 转换为数组,它似乎是一个选项?如果是这种情况,那么在这里使用 ArrayList 可能会很有用:
private int[] userInput(int endSign){ //end-sign is 0 in this case
int validInputCounter=0;
List<int> userValues;
int value;
do{
value = readInt(); //reads integer user-input
if(value != endSign){
validInputCounter++;
userValues += value;
}else{
break;
}
}while(true);
return userValues;
}
在这段代码中,我想返回一个用户输入的 int[] 数组。
【问题讨论】:
-
您可以在docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html 上找到所有答案。你不能做 List
userValues;你累了吗?你必须使用像 List 这样的泛型userValues; -
欢迎来到 Stack Overflow。请花点时间熟悉 Stack Overflow help file,这将帮助您了解适合本网站的问题类型。本网站旨在帮助您获得特定编程问题的答案,而不是提供教程、设计或代码审查帮助。阅读有关列表实现的 Java 教程,并单独阅读有关泛型的 Java 教程。使用 Google 查找教程。
-
主要与“模板化”您的课程有关。这是非常面向对象和通用的方法。这在 C++ 中也可用,其想法是保持类型灵活,并在编译时分配类型。编译器需要知道的只是模板应该如何实现,即模板类/函数的定义。
-
@MarsAtomic 我真的尽了最大努力使这个问题成为一个合适的问题并自己找到解决方案。我从未听说过集合和泛型、地图等等。我读到的一切都让我更加困惑。现在我得到了关于重要主题的线索。我问这个问题的原因是因为我包含了一个特定的编程问题。