ArrayListを並べ替える必要があり、並べ替えはArrayListのコピーで行う必要があります。JavaのArrayListから新しいセットを作成する方法
私は次のように試しましたが、元のリストをソートしています。ソートされたリストに変更を加えても元のリストにも反映されています。
List <Stud> list = new ArrayList<>();
list.add(new Stud(1,"Sachin") );
list.add(new Stud(2,"Niteen") );
Set <Stud> set = new HashSet<>(list);
Stud s = set.iterator().next();
System.out.println("S:"+s);
s.setRoll(10);
System.out.println("list: "+list);
System.out.println("set : "+set);
ロール何ら10は、これを回避する方法、ArrayListのセットの両方に設定されていません。 なぜそれが起こっているのか説明すると役に立ちます。
「スタッド」の同じインスタンスを両方のコレクションに追加しました。たぶんあなたは何かの上で 'setRoll'を呼び出すべきです(生徒の(?)身元情報から可変データを分離してください)。たぶんセットはID番号を持っているだけでしょうか?あなたのプロジェクトについてもっと知ることなく伝えるのは難しいです。 – Thilo
ここをクリックしてください:https://stackoverflow.com/questions/715650/how-to-clone-arraylist-and-also-clone-its-contents – algrid
タイトルはあなたの質問とは関係がありません –