再美不及姑娘你
又见西风上碧树

特点:

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);
      }

  }
}

 

 

posted on 2022-03-28 13:17  再美不及姑娘你  阅读(119)  评论(0)    收藏  举报