一个关于String 相等的问题。。。???

认真的coder 2011-04-26 05:16:19

class RecordFirst{
String X;
StringBuffer sbfir;
RecordFirst()
{
sbfir=new StringBuffer();
}
}

然后,定义一个集合HashSet<RecordFirst> set=new HashSet<RecordFirst>();
简单起见,只给集合里放一个元素,值为{"F","abc"}

Iterator<RecordFirst> iter=set.iterator();
while(iter.hasNext()){
RecordFirst tmprf=iter.next();
String s=tmprf.X.toString();
String s1=ch.toString();//此外ch='F'
if(s==s1)
{
rf.sbfir.append(tmprf.sbfir);
}
}

现在有一个困扰我很久的问题,就是s与s1的值都是"F",但就是id不一样。这到底是为什么?
...全文
73 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
认真的coder 2011-04-26
  • 打赏
  • 举报
回复
用equals确实是解决问题了, 不过,还是不明白s!=s1。
谢谢哈……
lqh3672 2011-04-26
  • 打赏
  • 举报
回复
只看不解释。。 万恶的== 哈哈哈
AcHerat 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 soli11722984 的回复:]

都説用equals,==只是比較引用,如果LZ要再深究下去,請先記好一句話,非基本類型用equals比較,==只用於基本類型
[/Quote]

...
soli11722984 2011-04-26
  • 打赏
  • 举报
回复
都説用equals,==只是比較引用,如果LZ要再深究下去,請先記好一句話,非基本類型用equals比較,==只用於基本類型
认真的coder 2011-04-26
  • 打赏
  • 举报
回复
补充说一下,上面的s与s1,值一样,但(s==s1)的结果却是返回false,为什么。?
如果要得到true,则应该如何修改呢?
soli11722984 2011-04-26
  • 打赏
  • 举报
回复
請用s.equals(s1)

50,531

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧