将List <String>转换为CASE INSENSITIVE Manner-Java 6中的Set

Bid*_*sha 2 java string collections

我有一个列表,其中包含字符串ABC:123,abc:123;当我将它转换为设置它给我2个不同的元素.有一个单行方式将此列表转换为设置忽略大小写,以便我的集合包含ABC只有123.但是如果输入List包含ABC:123a4,abc:1234A4它应该在Set中给我2个不同的元素:ABC:123a4,ABC:1234A4我知道这可以在":"上拆分列表元素首先将abc转换为全部大写,然后将它们添加到新列表中,然后将其添加到新列表中.但是只是想知道是否有更好的方法(小行代码)来做到这一点.感谢任何大脑提前思考的想法.

List<String> memlist = new ArrayList<String>(Arrays.asList(memberList.split(",")));
Set<String> memberSet = new HashSet<String>(memlist );
memlist = new ArrayList<String>(memberSet);
Run Code Online (Sandbox Code Playgroud)

Mik*_*son 6

您可以使用TreeSet带有String.CASE_INSENSITIVE_ORDER标志集的a.

    String startingString = "ABC:123,abc:123";
    List<String> caseSensitiveList = Arrays.asList(startingString.split(","));
    Set<String> caseInsensitiveSet = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
    caseInsensitiveSet.addAll(caseSensitiveList);

    for(String caseInsensitiveString : caseInsensitiveSet){
        System.out.println(caseInsensitiveString);
    }
Run Code Online (Sandbox Code Playgroud)

这段代码在运行时给出了输出:

ABC:123
Run Code Online (Sandbox Code Playgroud)

  • 当排序不涉及问题时,我不会使用`TreeSet`. (2认同)