つまり、簡単に言うと、Javaの宿題があり、文字列の長いArrayListをさまざまな方法で操作する必要があります(単語の組み合わせの表示、ArrayListの追加と削除など、特別なことは何もしていません)。提供されたArrayListのいくつかに重複するエントリがあることに気づきました(この割り当てには重複は必要ありません)。そのため、教師から重複するエントリを削除してデータをサニタイズすることができました。これが私が思いついたものです:
private static ArrayList<String> KillDups(ArrayList<String> ListOfStrings) {
for (int i = 0 ; i < ListOfStrings.size(); i++) {
for (int j = i + 1; j < ListOfStrings.size(); j++) {
//don't start on the same word or you'll eliminate it.
if ( ListOfStrings.get(i).toString().equalsIgnoreCase( ListOfStrings.get(j).toString() ) ) {
ListOfStrings.remove(j);//if they are the same, DITCH ONE.
j = j -1; //removing the word basically changes the index, so swing down one.
}
}
}
return ListOfStrings;
}
これは私の任務には問題ありませんが、現実の世界で非常に役立つとは思えません。比較中に空白や特殊文字を無視する方法はありますか?これを処理するためのよりクリーンな方法はありますか(おそらくネストされたForループなしで)?私が尋ねるべきわからない別の質問がありますか?