在Java8中,根据不同的大小写字符串属性从对象列表中删除重复项

在Java8中,根据不同的大小写字符串属性从对象列表中删除重复项,java,lambda,java-8,string-comparison,Java,Lambda,Java 8,String Comparison,在Java8中,如何基于“String”属性从对象列表中删除重复项? 我只能找到Int或long属性的代码,但当字符串大小写不同并获得唯一列表时,无法找到字符串比较 以下是我试图实现的计划 public class Diggu { class Employee{ private int id; private String name; public Employee(int id, String name){ th

在Java8中,如何基于“String”属性从对象列表中删除重复项? 我只能找到Int或long属性的代码,但当字符串大小写不同并获得唯一列表时,无法找到字符串比较

以下是我试图实现的计划

public class Diggu {

    class Employee{
        private int id;
        private String name;
        public Employee(int id, String name){
            this.id = id;
            this.name = name;
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }



    }

    public void ra(){
        List<Employee> employee = Arrays.asList(new Employee(1, "John"), new Employee(3, "JOHN"), new Employee(2, "BOB"));
        System.out.println(""+ employee.size());
        List<Employee> unique = employee.stream()
                                .collect(collectingAndThen(toCollection(() -> new TreeSet<>(comparing(Employee::getName))),
                                                           ArrayList::new));
        System.out.println(""+ unique.size());
    }
    public static void main(String[] args) {
        new Diggu().ra();
    }
}

如果它应该是3和2,John和John是不同的字符串,请使用不区分大小写的比较器

 Comparator.comparing(Employee::getName, String.CASE_INSENSITIVE_ORDER)

@HadiJ:当字符串的大小写不同时,如何在上述情况下使用它?@Oleksandr:我尝试了List unique2=employee.stream().filter(distinctByKey(employee::getName)),我想
比较
调用
equals()
方法。但是您想调用
equalsIgnoreCase()
方法。更改代码以调用正确的方法来获得答案,“很多。荒谬的数目。比你想象的要多。当你已经走到了尽头,没有答案的痛苦超过了发帖所带来的巨大耻辱,这时你可以继续提问。因为在那一点上,你将做任何必要的研究,使它成为一个值得问的好问题!“我正在寻找的重复问题中没有提到这个不区分大小写的问题。甚至还有另一个与Java 8无关的重复问题。问题被编辑了一点以显示动机。我创建的程序也是从stackoverflow的研究中创建的。即使我测试了重复问题场景,但没有成功。谢谢
 Comparator.comparing(Employee::getName, String.CASE_INSENSITIVE_ORDER)