特点:
1.不包含重复元素的集合
2.没有带索引的方法,所以不能使用普通for循环遍历,只能使用增强for循环或者迭代器进行遍历
Set练习
存储字符串并遍历
public class SetDemo {
    public static void main(String[] args) {
        //创建集合对象
        Set<String>s=new HashSet<String>();//hashSet是具体的实现类,注意hashSet对集合的迭代顺序不做任何保证
        //添加元素,注意Set的遍历不包含重复元素,所以输出为三个元素
        s.add("hello");
        s.add("world");
        s.add("java");
        s.add("world");
        //使用增强for遍历
        for (String s1:s){
            System.out.println(s1);
        }
        //使用迭代器遍历
        Iterator<String> it=s.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
    }
}
哈希值
概述:是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值
如何获取一个对象的哈希值?
public int hashCode():返回一个对象的哈希值//该方法是Object类中的
对象的哈希值特点
1.同一个对象多次调用hashCode()方法返回的哈希值是相同的
2.默认情况下,不同对象的哈希值是不同的。而重写hashCode()方法,可以实现让不同对象的哈希值相同
HashSet集合特点
1.底层数据结构是哈希表
2.对集合的迭代顺序不作任何保证,也就是说不保证存储和取出的顺序一致
3.没有带索引的方法,所以没有办法使用普通for循环遍历,可以使用迭代器或者增强for循环
4.由于是Set集合,所以是不包含重复元素的集合
HashSet练习存储字符串并遍历
ublic class HashSetDemo {
    public static void main(String[] args) {
        //创建对象
        HashSet<String> hs=new HashSet<String>();
        hs.add("hello");
        hs.add("world");
        hs.add("java");
        hs.add("world");//因为是Set集合所以不带重复元素
        //遍历方法一迭代器
        Iterator<String> it=hs.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
        //遍历方法二 增强for
        for (String s:hs){
            System.out.println(s);
        }
    }
}
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号