java - 无法确定数组中的索引

标签 java arraylist

将字符串添加到数组中,通过增加字符串的长度来判断列表是否有序。如果不是,则打印违反此类排序的第一个元素的索引。 如果数组中的字符串不同,则一切正常,例如,输入

113
13476
Neutral
wa

答案:索引(wa)3输出。

但是如果是这样的话:

123
12345
123

答案:索引 (123) - 0 但正确答案是索引 2

public class Solution {

    public static void main(String[] args) throws IOException {

             Scanner scan = new Scanner(System.in);
             ArrayList<String> list = new ArrayList<>();
        for (int i = 0; i < 4; i++) {
            list.add(scan.nextLine());
        }
        int count = 0;
        for(int i = 0; i < list.size(); i++){
            if(count+2 > list.size()) {
                break;
            }
            if(list.get(i+1).length() <= list.get(i).length()){
                System.out.println(list.indexOf(list.get(i+1)));
                          break;
            }
                       count = count + 1;
        }
     }
}

最佳答案

你应该改变

list.indexOf(list.get(i+1))

i+1

因为如果 List 中多次出现相同的 String,您希望返回违反顺序的第一个元素的索引,即 i+1(而不是等于该元素的第一个 String 的索引)。

顺便说一句,即使您的 List 中没有重复元素,使用 list.indexOf(list.get(i+1)) 也是没有意义的简单的 i+1

关于java - 无法确定数组中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55509146/

相关文章:

java - 根据每个字符串的子字符串对 String ArrayList 的一半进行排序

java 多线程哈希 ArrayList<String>

java - Spring JPA 中关系的动态获取

java - 在 Java 中的 ‘.’ 文件扩展名之前连接到文件名

java - 绘制矩形和网格

Java ArrayList<String[]>

java - 为什么 ArrayList RandomAccess 而 ArrayDeque 不是?

java - 代码似乎陷入了潜在的循环

java - 使用 BigInteger 绕过 Integer.toString()

java - 读取/更新时的 Hibernate 并发(?)问题