配列のインデックスを確定することはできません

アントン区:

文字列は、リストは、文字列の長さを増加させることによって順序付けされているかどうかを決定するために、アレイに添加されます。ない場合は、そのような秩序に違反する最初の要素のインデックスを印刷します。配列内の文字列が異なる場合はすべてが正常に動作し、例えば、入力します。

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

同じの複数の発生がある場合は以降StringではList、あなたがある順序、違反した最初の要素のインデックス戻りたいi+1(とない最初のインデックスString、その要素に等しいです)。

ところで、あなたには、重複する要素がなかった場合でもList、それは意味がありません使用するだろうlist.indexOf(list.get(i+1))単に代わりにi+1

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=177475&siteId=1