gpt4 book ai didi

Java ArrayList 的行为不同

转载 作者:行者123 更新时间:2023-12-01 22:45:52 25 4
gpt4 key购买 nike

我有一个用java打印ArrayList的程序。 ArrayList 应该保留插入顺序吗?

import java.util.*;

class Generator {
String[] s = { "snow", "white", "and", "the", "seven", "dwarfs" };

String s1;

static int i = 0;

String next() {
s1 = s[i];
i++;
if (i == s.length) {
i = 0;
}
return s1;
}

public static void main(String[] args) {
Collection<String> al = new ArrayList<String>();
// Collection<String> ll=new LinkedList<String>();
Generator g = new Generator();
for (int i = 0; i < 10; i++) {

al.add(g.next());
// ll.add(g.next());
}

System.out.println(al);
// System.out.println(ll);
}
}

通过评论 LinkedList 对象内容,我得到了正确的输出

[snow, white, and, the, seven, dwarfs, snow, white, and, the]

但是当我取消注释 LinkedList 代码时,我得到的输出为:

[snow, and, seven, snow, and, seven, snow, and, seven, snow]
[white, the, dwarfs, white, the, dwarfs, white, the, dwarfs, white]

有人可以向我解释一下这种行为吗?我很困惑。

最佳答案

当您取消链接列表的注释时,您将在每个循环中调用 next() 两次。

第一个单词存储在数组列表中,第二个单词存储在链表中,第三个单词存储在数组列表中...

请下一位!

关于Java ArrayList 的行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25384063/

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