java string hashset_java,hashset,string一点问题?为什么hashset可以识别String唯一性?

展开全部

因为你存储T类型的时候,set集合里面存储的是T的对象,你创建了三个对象t1,t2,t3,虽然这三62616964757a686964616fe4b893e5b19e31333335313239个对象的id都是1,但是这三个对象是不同的对象,所以存在set里面会都存在。

而下面那个集合存储的是字符串,存在在s里面的时候就是比较的是字符串的值,由于你的s1,s2,s3的值是相同的,你虽然加了双引号,但是没有作用。给你看看样列,你应该就清楚了!

程序代码1:import java.io.IOException;

import java.util.HashSet;

import java.util.Iterator;

import java.util.Set;

public class test{

public static void main(String[] args) throws IOException

{

Set s=new HashSet();

s.add("1");

s.add("1"+"");

s.add(""+"1");//这里其实三个字符串的值是相同的。比较不能用==而要用equals

Iterator it=s.iterator();

while(it.hasNext())

{

System.out.println(it.next());

}

}

}

运行结果1:

b9e2e57c38052f298c5c9f552b6c24e9.png

程序代码2:import java.io.IOException;

import java.util.HashSet;

import java.util.Iterator;

import java.util.Set;

public class test{

public static void main(String[] args) throws IOException

{

Set s=new HashSet();

s.add("1");

s.add("1"+" ");

s.add(" "+"1");//这里其实三个字符串的值都是不相等

Iterator it=s.iterator();

while(it.hasNext())

{

System.out.println(it.next());

}

}

}

运行结果2:

611aeeed0112d5a011aefb859729896f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值