List、Set、Map、Queue、Deque、Stack的遍历方式总结。

1.List的遍历方式

List list = new LinkedList();

(1)方式一:使用iterator

Iterator iter = list.iterator();

while(iter.hasNext()) {

Object o = iter.next();

}

(2)方式二:使用增强for

for(Object o : list) {

        System.out.println("o=" + o);

}

(3)方式三:使用普通for

for(int i=0; i<list.size(); i++) {

Object object = list.get(i);

System.out.println(object);

}

小结:可以使用迭代器、增强for循环、普通for循环

2.Set的遍历方式

(1)迭代器:

Set set = new HashSet();

Iterator iterator = set.iterator();

while(iterator.hashNext()){

Object obj = iterator.next();

System.out.println("obj= " + obj);

}

(2)增强for

for(Object o : set) {

System.out.println("o=" + o);

}

小结:Set 可以使用迭代器、增强for循环进行遍历。但不能使用索引的方式来遍历

3.Map的遍历方式

Map map = new HashMap();

(1)第一组:先取出所有的Key,通过Key取出对应的Value

Set keySet = map.keySet();

System.out.println("---第一种方式---");

for(Object key : keySet) {

        System.out.println(key + "-" + map.get(key));

}

System.out.println("---第二种方式---");

Iterator iter = keySet.iterator();

while(iterator.hasNext()){

        Object key =  iterator.next();

        System.out.println(key+"-"+map.get(key));

}

(2)第二组:把所有的values取出来

Map map = new HashMap();
Collection values = map.values();
System.out.println("增强for循环");
for (Object value : values) {
    System.out.println(value);
}
System.out.println("迭代器");
Iterator iterator = values.iterator();
while (iterator.hasNext()) {
    Object o = iterator.next();
    System.out.println("o= " + o);
}

(3)第三组:通过EntrySet来获取k-v

System.out.println("使用entrySet的for增强");
Set entrySet = map.entrySet();
for (Object o : entrySet) {
    Map.Entry set = (Map.Entry)entrySet;
    System.out.println(set.getKey() + "-" + set.getValue());
}
System.out.println("使用entrySet的迭代器");
Set entryset = map.entrySet();
Iterator iterator = entryset.iterator();
while (iterator.hasNext()) {
    Object obj = iterator.next();
    Map.Entry entry = (Map.Entry) obj;
    System.out.println(entry.getKey() + "-" + entry.getValue());
}

小结:Map的遍历可以通过先获取key键的集合或者是value值的集合,然后再进行遍历,这样前者可以通过键值获取value值,后者可以直接获取value值。也可以这样做,先把map集合通过entrySet()方法转换成EntrySet集合,然后遍历,再把遍历出来的每一个对象强制类型转换成Map.Entry类型,这样强转的目的是使用该类型的getKey()与getValue()方法,来获取对象的k-v,不知道大家有没有理解。

4.Queue的遍历方式

(1)通过poll()方法依次拿出元素,特点:获取元素之后队列中的元素已经销毁

Queue<String> queue= new LinkedList<String>();

String item = null;
while ((item = queue.poll()) != null) {
       System.out.println(item);

}

(2)增强for循环,特点:仅仅遍历了元素,并没有对队列中的元素做任何改变

for(String q : queue) {
      System.out.println(q);

}

(3)迭代器遍历

Iterator<String> iter = qeque.iterator();
        while(iter.hasNext()) {
            String s = iter.next();
            System.out.println(s);
        }

5.Deque的遍历方式

(1)while循环遍历

Queue<String> qeque = new LinkedList<String>();

String item = null;
 while ((item = deque.pollLast()) != null) {
            System.out.println(item);       

}

(2)增强for循环

for(String q : deque) {
      System.out.println(q);

}

(2)迭代器

        Iterator<String> iter = deque.iterator();
        while(iter.hasNext()) {
            String s = iter.next();
            System.out.println(s);
        }

6.Stack遍历方式

Stack<String> stack = new Stack<String>();

(1)while循环遍历

System.out.println("---pop()循环取出元素---");
        while(!stack.isEmpty()) {
            System.out.println(stack.pop());
        }

(2)增强for循环遍历

for(String s : stack) {

        System.out.println(s);
 }

(3)迭代器

        Iterator<String> iter = stack.iterator();
        while(iter.hasNext()) {
            String s = iter.next();
            System.out.println(s);
        }

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值