gpt4 book ai didi

java - 简单来说什么是 ArrayList 以及如何使用它?

转载 作者:行者123 更新时间:2023-12-01 18:24:21 26 4
gpt4 key购买 nike

如果我查找 ArrayList 是什么以及如何使用它,我经常会感到困惑。例如,当我看到这个时,我感到害怕:

new ArrayList<Element>(Arrays.asList(array))

作为初学者,我对 ArrayList 的理解可能存在一些差距。例如: <> 是什么意思?代表?有什么特殊的意义吗?其内部是如何体现的? (例如:我将变量视为表示内存中的位置,将数组变量视为内存中的起始位置,将数组的索引视为表示距离此起始位置还需要多远的方式。)

我认为我需要 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[] 数组。

最佳答案

<>类型参数。它们供您指定将存储在该列表中的对象类型。您不能使用原始类型作为类型参数。您只能将对象存储在列表中,而不能存储基元。查看The Java Tutorials - Generics

ArrayListCollection ,还有其他类型的集合(例如 LinkedList 和一些同步集合。您可以在 The Java Tutorials - Collections 阅读有关集合的信息)。您可以单独研究每一个,看看它们的优点在哪里。还有Maps ,你应该查看一下。它们的大小也会动态增长,但它们不是存储单个对象,而是存储键/对值。

您的主要思想是正确的:数组的大小不会改变。 List s 在需要时动态增加大小。

ArrayList 的使用示例:

class Demo {
public static void main(String[] args) {
ArrayList<Integer> intList = new ArrayList<>();
ArrayList<String> stringList = new ArrayList<>();

intList.add(1);
intList.add("s"); //error

stringList.add("s");
stringList.add(2); //error
}
}

我建议阅读The Java Tutorials - Autoboxing and Unboxing ,因为您不能使用原始类型作为类型参数。我们添加到 intList 的基元 1 将被装箱到一个对象中,因为该列表采用 Integer对象。

关于java - 简单来说什么是 ArrayList 以及如何使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26724224/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com