【问题标题】:How to set case insensitive to Set<String> [duplicate]如何设置对 Set<String> 不区分大小写 [重复]
【发布时间】:2019-10-10 17:09:04
【问题描述】:
Set<String> h = new HashSet<>(Arrays.asList("a", "b", "b", "A"));

它将设置“a”、“b”、“A”。

但是,我想不区分大小写。

所以,它会给出“a”,“b”

在,DTO 请求

public class EmpDto{
    private String empName;
    private Set<String> roles;
}

比如,如果我想按顺序排列

    private Set<String> roles;

是否需要任何预定义的实现或自定义实现? 如果自定义,请给我一个良好的开端

【问题讨论】:

  • 没有内置方法...似乎您必须区分小写的列表.. list.stream().map(String::toLowerCase).distinct().collect( Collectors.toList()) ?

标签: java collections


【解决方案1】:

你可以试试这个:

    Set<String> h = Stream.of("a", "b", "b", "A")
            .map(String::toLowerCase)
            .collect(Collectors.toSet());

【讨论】:

  • 没关系。但是,我期待 DTO 来自请求
  • 意思是,在DTO中我只能写Set声明
  • 这个? Arrays.asList("a", "b", "b", "A")
  • Set str = new TreeSet(String.CASE_INSENSITIVE_ORDER);
  • 这个有效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-06
  • 2013-08-05
  • 1970-01-01
  • 2014-02-05
  • 1970-01-01
  • 1970-01-01
  • 2021-02-18
相关资源
最近更新 更多