Set、Hash值、HashSet集合(Java学习第三十五天)

Set继承于Collection,所以都有Collection的方法。但是Set不能有重复元素,且因为没有索引,所以不能保证顺序,所以也不能用普通for循环来遍

Set继承于Collection,所以都有Collection的方法。但是Set不能有重复元素,且因为没有索引,所以不能保证顺序,所以也不能用普通for循环来遍历

Set来自于HashSet

代码如下

package day35;import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;public class SetDemo {public static void main(String[] args) {Set set = new HashSet();set.add("who");set.add("am");set.add("I");//如果有多余的元素,不会报错,但是不会保存set.add("I");//遍历有两种方式,迭代器和增强forIterator iter = set.iterator();while(iter.hasNext()){String str = (String) iter.next();System.out.println(str);}for(String s1 : set){System.out.println(s1);}}
}

哈希值:是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值

通过public int hashCode()方法获取哈希值

同一个对象的hash值是一样的,不同对象是不同的(除非重写方法),哪怕对象参数一样。

HashSet集合概述和特点

1、底层机构是哈希表

2、不保证集合的顺序

3、没有索引,不能用普通for循环来遍历

4、底层是set,没有重复元素

package day35;import java.util.HashSet;
import java.util.Iterator;public class HashSetDemo {public static void main(String[] args) {//哈希值String ss0 = "hello";System.out.println(ss0.hashCode());HashSet  hs =new HashSet();hs.add("java");hs.add("is");hs.add("running");//遍历两种for(String s : hs){System.out.println(s);}Iterator iter = hs.iterator();while (iter.hasNext()){String s1 = (String) iter.next();System.out.println(s1);}}
}