所以,长话短说,我有一个 Java 家庭作业,需要以各种方式操作一个长的 ArrayList 字符串(我们正在做一些事情,比如显示单词的组合,在 ArrayList 中添加和删除,没什么特别的)。我注意到一些提供的 ArrayLists 有重复的条目(并且重复项对于此作业不是必需的),所以我从老师那里得到了通过删除重复条目来清理数据的好方法。这是我想出的:
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 循环)?还有一个我不知道该问的问题吗?