Java 从字符串列表中删除重复项

Java 从字符串列表中删除重复项,java,Java,我有以下字符串列表: { "Name1,Name2", "Name2,Name1", "Name3,Name4", "Name4,Name3" } 在不使用任何Java/C/Python/C++/C库的情况下,我希望以一种打印方式删除重复项: Name1,Name2 Name3,Name4 删除重复项的一种方法是: private static boolean checkIfEquals(String str, String str1) {

我有以下字符串列表:

{ 
    "Name1,Name2",
    "Name2,Name1",
    "Name3,Name4",
    "Name4,Name3"
}
在不使用任何Java/C/Python/C++/C库的情况下,我希望以一种打印方式删除重复项:

Name1,Name2
Name3,Name4
删除重复项的一种方法是:

private static boolean checkIfEquals(String str, String str1) {
        HashSet<String> set1 = new HashSet<>(Arrays.asList(str.split(",")));
        HashSet<String> set2 = new HashSet<>(Arrays.asList(str1.split(",")));
        return set1.equals(set2);
    }

使用相同的方法,假设字符串列表位于变量字符串列表中:

使用C++ +/P>

int main(){
    ios_base::sync_with_stdio(false);
    string list[4]={
                    "Name1,Name2",
                    "Name2,Name1",
                    "Name3,Name4",
                    "Name4,Name3"
                    };

    map<string,bool>exist;
    vector<string>flist;

    for(int i=0;i<4;i++){
        string s=list[i];
        sort(s.begin(),s.end());

        if(exist[s])continue;

        exist[s]=true;
        flist.push_back(list[i]);
    }                

    for(auto item :flist)cout<<item<<"\n";
}

为什么提供的方法不起作用?这个问题让我有点困惑。Name1、Name2是单个元素,还是两个单独的元素Name1、Name2等@OyaCanlı从问题的其余部分可以清楚地看出,OP要求将每一行视为无序的字符串集,他想要的是得到唯一字符串集的列表。@jbk这是我从建议的解决方案中猜到的,但应该有大约两个字符串来说明,比如Name1、Name2、Name2,名称1等。我们不应该试图猜测作者的意思,如果它是清楚的话会更好。@Deadpool为什么你发现了问题?
int main(){
    ios_base::sync_with_stdio(false);
    string list[4]={
                    "Name1,Name2",
                    "Name2,Name1",
                    "Name3,Name4",
                    "Name4,Name3"
                    };

    map<string,bool>exist;
    vector<string>flist;

    for(int i=0;i<4;i++){
        string s=list[i];
        sort(s.begin(),s.end());

        if(exist[s])continue;

        exist[s]=true;
        flist.push_back(list[i]);
    }                

    for(auto item :flist)cout<<item<<"\n";
}