ListIterator 比 Iterator的方法多 - add(E e) 将指定的元素插入列表,插入位置为迭代器当前位置之前 - set(E e) 迭代器返回的最后一个元素替换参数e - hasPrevious() 迭代器当前位置,反向遍历集合是否含有元素 ...
为了方便的处理集合中的元素,Java中出现了一个对象,该对象提供了一些方法专门处理集合中的元素。例如删除和获取集合中的元素.该对象就叫做迭代器(Iterator)。
HashSet中add方法调用的是底层HashMap中的put方法,put方法要判断插入值是否存在,而HashSet的add方法,首先判断元素是否存在,如果存在则插入,如果不存在则不插入,这样就保证了HashSet中不存在重复值。
1. HashSet HashSet是set接口的实现类,set下面最主要的实现类就是HashSet(也就是用的最多的),此外还有LinkedHashSet和TreeSet。 HashSet是无序的、不可重复的。通过对象的hashCode和equals方法保证对象的唯一性。 HashSet内部的存储结构是哈希表,是线程不安全的。
- synchronized是可重入锁,每部锁对象会有一个计数器记录线程获取几次锁,在执行完同步代码块时,计数器的数量会-1,直到计数器的数量为0,就释放这个锁。