[解決済み] Java ArrayList - 2つのリストが等しいかどうかを判断するにはどうすればよいですか?
2022-04-29 01:41:10
質問
私は2つの
ArrayList
タイプの
Answer
(自作クラス)です。
2つのリストを比較して、同じ内容が含まれているかどうかを、順序を気にせずに確認したいと思います。
例
//These should be equal.
ArrayList<String> listA = {"a", "b", "c"}
ArrayList<String> listB = {"b", "c", "a"}
List.equals
は、2つのリストが同じサイズ、内容、要素の順序を含む場合、等しいと述べています。私は同じことをしたいのですが、順序は重要ではありません。
これを簡単に行う方法はありますか?それとも、ネストされたforループを行い、手動で両方のリストの各インデックスをチェックする必要があるのでしょうか?
注:
ArrayList
を他のタイプのリストに変更する必要があります。
どのように解決するのですか?
両方のリストを並べ替えるには
Collections.sort()
を実行し、equalsメソッドを使用します。もし同じ長さでなければ、等しくないということになり、ソートしてからequalsを使います。例えば、2つの文字列のリストがあった場合、次のようになります。
public boolean equalLists(List<String> one, List<String> two){
if (one == null && two == null){
return true;
}
if((one == null && two != null)
|| one != null && two == null
|| one.size() != two.size()){
return false;
}
//to avoid messing the order of the lists we will use a copy
//as noted in comments by A. R. S.
one = new ArrayList<String>(one);
two = new ArrayList<String>(two);
Collections.sort(one);
Collections.sort(two);
return one.equals(two);
}
関連
-
java.util.NoSuchElementException 原因解析と解決方法
-
スレッド "main "での例外をEclipseで解決 java.lang.Error: 未解決のコンパイル問題、コンパイラとパッケージの不整合
-
Spring Boot による HTTPS アクセスの設定
-
eclipseにプロジェクトをインポートした後、Editorにmain typeが含まれない問題
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでMD5ハッシュを生成するにはどうすればよいですか?
-
[解決済み] Javaで現在のスタックトレースを取得するにはどうすればよいですか?
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
-
[解決済み】2つの異なるリストが全く同じ要素を含んでいるかどうかを調べる簡単な方法?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Java のエラーです。未解決のコンパイル問題 解決方法
-
Java Exceptionが発生しました エラー解決
-
この行に複数のマーカーがある - HttpServletResponseが型エラーに解決できない
-
eclipse アクセス制限です。タイプ 'xxx' は API ではありません(必須ライブラリ '' の制限)。
-
Android Studio 3.1.2 で v4, v7 パッケージが見つからない シンボル 'AppCompatActivity' を解決できない
-
サーブレットクラスのインスタンス化エラーの解決法
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 4 at text.Division.main(Divisi
-
Javaエラーメッセージがenclosingクラスでない
-
テストが見つかりませんでした
-
[解決済み】2つの異なるリストが全く同じ要素を含んでいるかどうかを調べる簡単な方法?