Javaで大文字小文字を無視して2つのリストを比較する方法


方法1: ループとtoLowerCaseメソッドを使用する方法 この方法では、2つのリストの要素をループで比較し、要素ごとに大文字小文字を無視して比較します。要素を比較する前に、両方の要素をtoLowerCaseメソッドを使用して小文字に変換します。

public boolean compareListsIgnoreCase(List<String> list1, List<String> list2) {
    if (list1.size() != list2.size()) {
        return false;
    }

    for (int i = 0; i < list1.size(); i++) {
        String element1 = list1.get(i).toLowerCase();
        String element2 = list2.get(i).toLowerCase();

        if (!element1.equals(element2)) {
            return false;
        }
    }

    return true;
}

方法2: Stream APIとequalsIgnoreCaseメソッドを使用する方法 この方法では、Java 8以降のStream APIを使用してリストを比較します。Stream APIのmapメソッドを使用して、各要素を小文字に変換し、その後、Stream APIのallMatchメソッドを使用してすべての要素が一致するかどうかを確認します。

public boolean compareListsIgnoreCase(List<String> list1, List<String> list2) {
    if (list1.size() != list2.size()) {
        return false;
    }

    return IntStream.range(0, list1.size())
            .allMatch(i -> list1.get(i).equalsIgnoreCase(list2.get(i)));
}

これらの方法を使用すると、大文字小文字を無視して2つのリストを比較することができます。どちらの方法もシンプルで簡単に実装できるため、目的に合わせて選択してください。