容器

容器
    Java用来在内存中存放对象的一系列的类

 Iterator
    所有实现了Collection接口的容器都有一个Iterator()方法返回一个 实现了Iterator接口的 对象
    Iterator接口的 对象 就是迭代器,用于遍历容器
    迭代器是唯一在遍历中安全删除元素的操作

    唯一安全的原因:

    for-each循环底层也是 iterator实现的,
    这个迭代器在调用next方法时,会检查列表是否被修改过,如果被修改过,就会抛出ConcurrentModificationException异常。
    解决方法:在Map或者Collection的时候,不要用它们的API直接修改集合的内容,如果要修改可以用Iterator的remove()方法
    由于for-each的写法,使我们无法获得iterator对象,所以这种遍历方式不能进行删除操作。只好改成了比较土的方法实现了,如下:

    for (Iterator it = desk.getPkers().iterator(); it.hasNext();) {                 
        PKer pkerOnDesk =(PKer) it.next();  
        it.remove();              
        //add 需要用新数组
    }

 

 

Collection

    定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式

    方法
        itrrator()
            返回实现了itrrator接口的itrrator对象(itrrator类型)
        size()
            返回此 collection 中的int类型元素数
        isEmpty()
            如果此 collection 不包含元素,则返回 true
        clear()
            移除此 collection 中的所有元素
        contains(object a)
            如果此 collection 包含元素a,则返回 true
        containsAll(collection a)
            如果此 collection 包含collection a的所有元素,则返回 true
        boolean c.add(object a)
            添加a元素
        addAll(collection a)
            添加a集合所有元素
        remove(object a)
            删除a元素
        removeAll(collection a)
            删除a集合所有元素
        retainAll(collection a)
            保留与容器a的交集的元素
        toArray():将集合转换为object数组返回

    容器<自定义对象类>进行contain(),remove()操作需要重写对象的equals和hashcode方法
    demo:G:\project\demo\interface\equals
List
    List中的数据对象有顺序并且可以重复。

    额外方法(相比于collection)
        set(int a,object b)
            在指定位置用b替代,并返回原元素(object类型)
        get(int a)
            返回指定位置的object元素
        remove(int a)
            移除指定位置上的元素,并返回
        indexOf(object a)
            返回a元素首次出现的位置,没有a元素,返回-1
        lastIndexOf(object a)
            返回a元素最后出现的位置,没有a元素,返回-1
Set
    Set中的数据对象没有顺序并且不可以重复。(两对象互相equals相等则重复)
    
    无额外方法(相比于collection)
Map
    定义了存储“键(key) — 值(value)映射对”的方法

    额外方法(相比于collection)
        put(object key,object value)
            存map,返回value
        get(object key)
            返回key对应的value,没有返回Null
        remove(object key)
            删除key对应的map,返回value
        containsKey(object key)
            容器里有这个key,返回true
        containsValue(object value)
            容器里有这个value,返回true
        size()
            返回容器大小(int类型)
        isEmpty()
            容器为空,返回true
        putAll(Map a)
            将a的名值对存入容器,a中的会替换容器中key相同的value
        clear()
            清空

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值