相关疑难解决方法(0)

如何比较Java中的字符串?

==到目前为止,我一直在我的程序中使用运算符来比较我的所有字符串.但是,我遇到了一个错误,将其中一个更改为了.equals(),并修复了该错误.

==坏?什么时候应该不应该使用它?有什么不同?

java string equality

726
推荐指数
23
解决办法
376万
查看次数

TreeSet违反了Set契约?

我试图在论坛中回答这个问题而且我发现尽管equalsEmployee课堂上覆盖了这个方法,但我仍然可以添加重复的元素TreeSet.

TreeSet.add(E)方法的Javadoc 说

如果指定的元素尚不存在,则将其添加到此集合中.更正式地,如果集合不包含元素e2,则将指定的元素e添加到该集合中(e == null?e2 == null:e.equals(e2)).如果此set已包含该元素,则调用将保持set不变并返回false.

这实质上意味着不会插入2个等于对象,TreeSet并且仅通过equals()包含对象的方法来确定相等性.

但是,下面的代码正在添加2个元素,Set即使它们是相等的

public class Employee implements Comparable<Employee> {

    String employeeName;
    int employeeId;

    public Employee(String name, int id) {
        this.employeeName = name;
        this.employeeId = id;
    }

    public int compareTo(Employee emp) {
        //return this.employeeName.compareTo(emp.employeeName);
        return (this.employeeId - emp.employeeId);
    }

    @Override
    public String toString() {
        return ("Name is: " + employeeName + " Emp id is: " + employeeId);
    } …
Run Code Online (Sandbox Code Playgroud)

java collections treeset

2
推荐指数
1
解决办法
341
查看次数

标签 统计

java ×2

collections ×1

equality ×1

string ×1

treeset ×1