gpt4 book ai didi

java - 在方法之间传递 ArrayList

转载 作者:行者123 更新时间:2023-11-29 07:35:04 25 4
gpt4 key购买 nike

在我关于数组和 ArrayLists 的继续教育中,我试图通过将 ArrayList 从一种方法传递到另一种方法来使我的代码更智能。这是我的代码:

public void exampleArrayList () {
ArrayList<String> al = new ArrayList<String>();
al.add("AZ");
al.add("BY");
al.add("CX");
al.add("DW");
al.add("EV");
al.add("FU");
al.add("GT");

display(al);
}

public void display(ArrayList al) {

System.out.println("Index of 'AZ': " + al.indexOf("AZ"));
System.out.println("Index of 'FU': " + al.indexOf("FU"));
System.out.println("Index of 'AA': " + al.indexOf("AA"));
System.out.println("Index of 'CX': " + al.indexOf("CX"));

// for (String row : al)
// System.out.println("Value at Index " + al.indexOf(row) +
// " is " + al.get(al.indexOf(row)));

for(int i = 0; i < al.size(); i++)
System.out.println("Value at Index " + al.indexOf(i) +
" is " + al.get(al.indexOf(i)));
}

在 display 方法中,两个 for 语句都被注释掉了。当前被注释掉的 for 语句不起作用,因为 row 正在寻找一个 String 但 get 被分配了一个对象,即使 array al 是一个字符串。我是否需要将 al 转换为字符串或其他内容?当我运行 for 循环时,当循环使用与创建 ArrayList 相同的方法并且我不明白其中的区别时,情况并非如此。

没有注释掉的第二个 for 语句会导致崩溃并出现以下运行时错误:

java.lang.ArrayIndexOutOfBoundsException: length=12; index=-1

我尝试更改 i < al.size()到一个硬编码的数字,它仍然失败,我不知道为什么。

最佳答案

1) 您需要将其作为 ArrayList<String> 传递:

public void display(ArrayList<String> al) {
^^^^^^^^

2) 您正在搜索列表中的整数。该列表不包含任何整数,所以 indexOf返回 -1。然后你打电话al.get(-1)其中 -1 显然是越界的。我不确定你在这里想做什么。

关于java - 在方法之间传递 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36901724/

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