Collection和Iterator接口

**在Collection接口中声明了适用于Java集合(只包括Set、List和Queue)的通用方法。**如下表:

方法描述
boolean add(Object o)向集合中加入一个对象的引用
void clear()删除集合中的所有对象,即不再持有这些对象的引用
boolean contains(Object o)判断集合中是否持有特定对象的引用
boolean isEmpty()判断集合是否为空
Iterator iterator()返回一个Iterator对象,可用它来遍历集合中的元素
boolean remove(Object o)从集合中删除一个对象的引用
int size()返回集合中元素的数目
Object[] toArray()<T>T[] toArray(T[] a)返回一个数组,该数组包含集合中的所有元素

Set接口、List接口和Queue接口都继承了Collection接口,而Map接口没有继承Collection接口,因此可以对Set对象、List对象和Queue调用以上方法,但是不能对Map对象调用以上方法。

**Iterator接口隐藏底层集合的数据结构,向客户程序提供了遍历各种类型的集合的统一接口。**Iterator接口声明了如下方法:

  • hasNext():判断集合中的元素是否遍历完毕,如果没有,就返回true。
  • next():返回下一个元素。
  • remove():从集合中删除由next()方法返回的当前元素。

在Vistor类的print()方法中,利用Iterator来遍历集合:

package test221121;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Queue;
import java.util.Set;

public class Vistor {
    public static void print(Collection<? extends Object> c){
        Iterator<? extends Object> it = c.iterator();
        while(it.hasNext()){
            Object element = it.next();
            System.out.println(element);
        }
    }

    public static void printWithForFeach(Collection<? extends Object> c){
        for(Object element:c)
            System.out.println(element);
    }

    public static void main(String[] args) {
        Set<String> set = new HashSet<String>();
        set.add("Tom");
        set.add("Marry");
        set.add("Jack");
        print(set);

        List<String> list = new ArrayList<String>();
        list.add("Linda");
        list.add("Mary");
        list.add("Rose");
        print(list);

        Queue<String> queue = new ArrayDeque<String>();
        queue.add("Tome");
        queue.add("Mike");
        queue.add("Jack");
        print(queue);

        Map<String,String> map = new HashMap<String,String>();
        map.put("M", "男");
        map.put("F", "女");
        print(map.entrySet());

        printWithForFeach(set);
        printWithForFeach(list);
        printWithForFeach(queue);
        printWithForFeach(map.entrySet());

    }
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值