Iterator迭代器的使用(自用)

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

/获得map的迭代器,用作遍历map中的每一个键值对
Iterator是迭代器,map之前应该定义过,姑且认为是HashMap。<Entry<String,String>>表示map中的键值对都是String类型的。
map.entrySet()是把HashMap类型的数据转换成集合类型
map.entrySet().iterator()是去获得这个集合的迭代器,保存在iter里面。。迭代器这么用:
while(iter.hasNext()) {
  Entry obj = it.next();//就能获得map中的每一个键值对了
}
Iterator<String> iter;//声明一个迭代器,泛型里面是String类型,表示迭代元素是String类型的
Iterator<Entry<String,String>> iter;//而你提供的要稍微复杂一点,迭代元素本身就是一个Entry键值对,Entry<String,String>表示其key值是String,value值也是String。

后面部分:
HashSet set=map.entrySet();//将map类型数据转换成集合set类型的。
iter=set.iterator();//获得集合的迭代器。迭代器只针对集合类型的数据,因此map类型的必须先转换成集合类型才能使用迭代器去获取元素。

Entry首字母大写是因为它是java提供的类。。类首字母大写这是JavaBean规范
keySet获得的只是key值的集合,valueSet获得的是value集合,entryset获得的是键值对的集合
private static void removeItem1() {  
        List<Integer> list = getList();  
        // 使用迭代器  
        Iterator<Integer> iter = list.iterator();  
        Integer item = null;  
        while (iter.hasNext()) {  
            item = iter.next();  
            if (null != item && 5 == item.intValue()) {  
                iter.remove();  
            }  
        }  
        System.out.println(list);  
    }  
  
    private static void removeItem2() {  
        List<Integer> list = getList();  
        // 手动索引操作  
        int len = list.size();  
        Integer item = null;  
        for (int i = 0;i < len;i++) {  
            item = list.get(i);  
            if (null != item && 5 == item.intValue()) {  
                list.remove(item);  
                i--;  
                len--;  
            }  
        }  
        System.out.println(list);  
    }  
  
    private static void removeItem3() {  
        List<Integer> list = getList();  
        // 使用引用克隆  
        List<Integer> listCopy = new ArrayList<Integer>();  
        listCopy.addAll(list);  
        for (Integer item:list) {  
            if (null != item && 5 == item.intValue()) {  
                listCopy.remove(item);  
            }  
        }  
        System.out.println(listCopy);  
    }  
  
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值