gpt4 book ai didi

java - 集合中的名称返回 null?

转载 作者:行者123 更新时间:2023-12-01 17:12:10 25 4
gpt4 key购买 nike

这是我的第一个类

    public class User {

String name;
int age;

public User(String name,int age)
{
name=this.name;
age=this.age;
}

@Override
public boolean equals(Object obj)
{
User u=(User)obj;
if(this.age==u.age)
{
return this.name.equals(u.name);
}
else
{
return false;
}
}

public int hashcode()
{
return this.name.hashCode()+this.age;
}

@Override
public String toString()
{
return String.format("Name %s", this.name);
}
}

这是我的第二堂课

   public class MainClass {

public static void main(String args[])
{
java.util.Set s=new java.util.HashSet();
s.add(new Integer(10));
s.add(new Integer(1));
s.add(new Integer(5));
s.add(new Integer(3));
s.add(new Integer(6));
s.add(new Integer(9));
s.add(new User("Amit",25));
s.add(new User("Amit",25));
java.util.Iterator it=s.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}

}

当我运行第二个程序时,名称返回为 null。

最佳答案

this.name 引用实例名称对象,name 引用本地名称对象。应该是-

public User(String name,int age){
this.name=name;
this.age=age;
}

name=this.name; 这里本地引用被分配了实例引用,该实例引用默认分配了 null ,因此它获取 null。

关于java - 集合中的名称返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23237665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com