小编use*_*958的帖子

删除 ArrayList 的第一个不区分大小写的重复项

我有一个包含一些字符串的数组列表:

ArrayList<String> strList = new ArrayList<String>();
strList.addAll(Arrays.asList("interface", "list", "Primitive", "class", "primitive", "List", "Interface", "lIst", "Primitive"));
Run Code Online (Sandbox Code Playgroud)

我写了一个方法来删除数组列表中不区分大小写的字符串:

public static ArrayList<String> removeDuplicates(ArrayList<String> strList) {

    for(int i = 0; i < strList.size(); i++) {
        for(int j = i + 1; j < strList.size(); j++) {
            if(strList.get(i).equalsIgnoreCase(strList.get(j))){
                strList.remove(j);
                j--;
            }
        }
    }
    return strList;   
}
Run Code Online (Sandbox Code Playgroud)

输出:

[interface, list, Primitive, class]
Run Code Online (Sandbox Code Playgroud)

但是,我试图仅删除第一次出现的字符串。我正在尝试使其输出等于:

[Interface, lIst, Primitive, class]
Run Code Online (Sandbox Code Playgroud)

这将是数组列表中重复项的最后一次出现

我具体想做什么:

保留的字符串版本与最后一次出现的版本相同。换句话说,最后一次出现的版本保留在第一次出现的位置

java string arraylist

6
推荐指数
1
解决办法
1483
查看次数

标签 统计

arraylist ×1

java ×1

string ×1