迭代器iterator遍历集合

2年前 (2022) 程序员胖胖胖虎阿
310 0 0

集合分为list、set和map。list排列有序,可重复;set排列无序,不可重复;map键不可重复,值可重复,排列无序。

一般遍历用for循环,但是set和map无序,所以要用迭代器。

迭代器是将数据放在一个容器中,并排成一排,迭代器有一个游标,再未遍历之前,这个游标放在第一位元素的前面,一般是迭代器iterator.hasNext判断游标后面是否有元素,iterator.next是将游标向后移一位。

list集合分为ArrayList、vector、LinkedList
ArrayList:排列有序,可重复,底层是数组,增删慢,查询快,扩容机制是当前容量的1.5倍+1,线程不安全。
vector:排列有序,可重复,底层是数组,增删慢,查询快,扩容机制是当前容量的1倍,线程安全。vector因为是线程安全的,所以它的查询速度没有ArrayList快。
LinkedList:排列有序,可重复,底层是链表,增删快,查询慢,线程不安全

set集合分为HashSet、TreeSet和LinkedHshSet
HashSet:排列无序,不可重复,存取速度快
TreeSet:排列无序,不可重复,排序存储
LinkedHashSet:排列无序,不可重复,一般不用

map集合分为HashMap、TreeMap、hashtable
HashMap:排序无序,键不可重复,值可重复,线程不安全,键值都可为null
TreeMap:排列无序,键不可重复,值可重复
hashtable:排列无序,键不可重复,值可重复,线程安全,键值都不可为null

list迭代器遍历

List<String> list = new ArrayList<>();
list.add("a");
list.add("a");
list.add("b");
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()){
    System.out.println(iterator.next());
}

set迭代器遍历

Set<String> set = new HashSet<>();
set.add("a");
set.add("a");
set.add("b");
Iterator<String> iterator = set.iterator();
while(iterator.hasNext()){
    System.out.println(iterator.next());
}

map迭代器遍历
因为map里面存储的是键值对,如果要遍历的话,需要把map里的对象看成一个整体

Map<Integer,String> map = new HashMap<>();
map.put(1,"a");
map.put(1,"b");
map.put(2,"a");
Set<Map.Entry<Integer, String>> set = map.entrySet();
Iterator<Map.Entry<Integer, String>> iterator = set.iterator();
while (iterator.hasNext()){
    System.out.println(iterator.next());
}

版权声明:程序员胖胖胖虎阿 发表于 2022年9月13日 下午4:08。
转载请注明:迭代器iterator遍历集合 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...