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