Map、List、Set在Java中的各种遍历方法

本文总结了Java中三种常用集合:Map、List和Set的遍历方法。针对Map介绍了四种遍历方式,包括普遍使用但需二次取值的方法、通过Map.entrySet使用iterator遍历key和value等;List部分提供了三种遍历方式,包括效率最高的直接for循环遍历;对于Set则总结了两种遍历方式,便于开发者根据不同场景选择最合适的遍历策略。

一、Map的4种遍历

1

2

3

Map<String, String> map = new HashMap<String, String>(); 

map.put("姓名", "张三"); 

map.put("属性", "好人"); 

1、普遍使用,二次取值

1

2

3

for (String key : map.keySet()) { 

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

2、通过Map.entrySet使用iterator遍历key和value

1

2

3

4

5

Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator(); 

while (iterator.hasNext()) { 

    Map.Entry<String, String> entry = iterator.next(); 

    System.out.println(entry.getKey() + entry.getValue()); 

3、通过Map.entrySet遍历key和value(推荐容量大时使用)

1

2

3

for (Map.Entry<String, String> entry : map.entrySet()) { 

    System.out.println(entry.getKey() + entry.getValue()); 

4、通过Map.values()遍历所有的value,但不能遍历key

1

2

3

for (String value : map.values()) { 

    System.out.println(value); 

二、List的3种遍历

1

2

3

List<String> list = new ArrayList<String>(); 

list.add("one"); 

list.add("two"); 

1、普遍使用,效率最高

1

2

3

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

    System.out.println(list.get(i)); 

2、迭代遍历

1

2

3

4

Iterator<String> iterator = list.iterator(); 

while(iterator.hasNext()){ 

    System.out.println(iterator.next()); 

3、for循环遍历

1

2

3

for(String data : list){ 

    System.out.println(data); 

三、Set的2种遍历

1

2

3

4

Set<String> set = new HashSet<String>(); 

set.add("one"); 

set.add("two"); 

set.add("one"); 

1、迭代遍历

1

2

3

4

Iterator<String> iterator = set.iterator(); 

while (iterator.hasNext()) { 

    System.out.println(iterator.next()); 

2、for循环遍历

1

2

3

for (String data : set) { 

    System.out.println(data); 

 

 

 

 

G

M

T

 

 

 世界语中文简体冰岛语法语英语

 

世界语中文简体冰岛语法语英语

 

 

 

 

 

 

 

 

public static void main(String[] args) {
        Map<String, String> map = new HashMap();
        map.put("001", null);
        map.put("002", "abd");
        map.put(null, null);
        map.put("002", "abe");
        //1
        for(Map.Entry<String, String> entry: map.entrySet()){
            System.out.println(entry.getKey()+"  "+entry.getValue());    
        }
        //2
        for(String key: map.keySet()){
            System.out.println(key+"  "+map.get(key));
        }
        
        
        Set<String> set = new HashSet<String>(); 

        set.add("one"); 

        set.add("two"); 

        set.add("one"); 
        
        for(String str :set){
            System.out.println(str);
        }
        
    }
 

文本转语音功能仅限200个字符

 

 

 

选项 : 历史 : 反馈 : Donate关闭

转载于:https://my.oschina.net/u/3503268/blog/1829126

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值