gpt4 book ai didi

java - 按字母顺序排列的 ArrayList (java)

转载 作者:行者123 更新时间:2023-12-02 05:15:57 26 4
gpt4 key购买 nike

我正在尝试编写一种方法,在输入字符串时将每个字符串按字母顺序放入字符串数组列表中。例如,如果我输入 4 作为所需数组列表的大小,并输入 Anne, Bill, Aran, Carol,则该方法应打印 Anne, Aran, Bill, Carol。然而,现在它只提示我输入 3 个字符串,并且不打印任何内容。相反,它给出了这个错误“线程“main”java.lang.IndexOutOfBoundsException中的异常:索引:2,大小:2。”为什么它给我这个错误?

public static ArrayList<String> getOrderedListOfNames()
{
System.out.println ("How big an array?");
int size = sc.nextInt ();
ArrayList<String> names= new ArrayList<String>(size);

System.out.println ("Type in a string");
String firstInput= sc.next();
names.add(firstInput);
System.out.println ("Type in a string");
String secInput= sc.next();
if (secInput.compareTo(firstInput)>0)
names.add(secInput);
else
names.add(0,secInput);
if (size>2)
{
for (int i = 2 ; i < size ; i++)
{
System.out.println ("Type in a string");
String input= sc.next();
int entered=0;
for (int j=0; j<names.size(); j++)
{
String name1=names.get(j);
String name2=names.get(j+1);
if (input.compareTo(name1)>0 && input.compareTo(name2)<0)
{
names.add(j+1, input );
entered=1;
j=names.size();
}

}
if (entered==0)
names.add(input);
}
}
return names;

}

最佳答案

对于大小为 2 的列表(例如 ["a", "b"] ),您正在 j 中从 0 遍历到 1但你确实j + 1这意味着对于 1,您将尝试访问 2这绝对是超出范围的

要么转到 < size - 1或者只是使用 Collections.sort(yourArrayList)

关于java - 按字母顺序排列的 ArrayList (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26952414/

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