一、HashSet概述
HashSet是Java中常用的集合类之一,它继承AbstractSet抽象类,并实现了Set接口。HashSet中的元素是无序的,不允许有重复元素,它实现了hashCode()和equals()方法来保证元素的唯一性。
HashSet内部使用HashMap来进行实现,它的底层实现就是一个HashMap,在HashMap的key部分存储对象,value部分存储常量对象PRESENT。
二、如何添加元素到HashSet中
添加元素到HashSet中非常简单,可以使用HashSet的add()方法来实现,add()方法会返回一个boolean类型的值,代表添加操作是否成功。
HashSet<String> hashSet = new HashSet<>(); hashSet.add("apple"); hashSet.add("orange"); hashSet.add("banana");
三、如何使用Iterator来遍历HashSet中的元素
使用Iterator可以遍历HashSet中的元素,程序员可以使用Iterator的hasNext()和next()方法来获取HashSet中的元素,其中hasNext()方法用于判断是否还有元素可以被获取,next()方法用于获取下一个元素。
HashSet<String> hashSet = new HashSet<>(); hashSet.add("apple"); hashSet.add("orange"); hashSet.add("banana"); Iterator<String> iterator = hashSet.iterator(); while(iterator.hasNext()) { String value = iterator.next(); System.out.println(value); }
四、如何使用forEach遍历HashSet中的元素
从Java 8开始,我们可以使用forEach方法来遍历HashSet中的元素,它相当于使用for-each循环来遍历一个数组。
HashSet<String> hashSet = new HashSet<>(); hashSet.add("apple"); hashSet.add("orange"); hashSet.add("banana"); hashSet.forEach(new Consumer<String>() { @Override public void accept(String value) { System.out.println(value); } });
五、如何使用Stream遍历HashSet中的元素
从Java 8开始,我们还可以使用Stream来遍历HashSet中的元素,它非常方便,尤其是在处理大集合时。
HashSet<String> hashSet = new HashSet<>(); hashSet.add("apple"); hashSet.add("orange"); hashSet.add("banana"); hashSet.stream().forEach(value -> System.out.println(value));
六、如何使用for-each遍历HashSet中的元素
虽然HashSet并没有提供类似于for-each的循环控制语句来遍历元素,但是我们可以通过将HashSet转换为数组来使用for-each循环来遍历HashSet中的元素。
HashSet<String> hashSet = new HashSet<>(); hashSet.add("apple"); hashSet.add("orange"); hashSet.add("banana"); String[] arr = new String[hashSet.size()]; hashSet.toArray(arr); for(String value : arr) { System.out.println(value); }