集合概要

Iterable接口

特点:

  1. Iterable的子类都有foreach方法。
  2. 含有remove(); 删除方法。

Collection接口继承了Iterable接口

特点:

  1. 含有remove(obj);删除方法。
  2. isEmpty(); 判断集合是为空。
  3. size();获取集合的长度。
  4. contains(obj);判断集合是否包含obj 等等。。。

Iterable接口和Collection接口remove()方法的区别:

最直观的区别就是一个带参数一个不带参数。

Iterable接口的remove()必须配合next()方法一起使用,删除next()返回的值。

Collection接口的remove(obj)需要传数组的下标,然后遍历集合(单链查询)找到对象进行删除。

Iterable接口remove()不会报错,性能高。

List接口继承了Collection接口

特点:有序,可保存重复的对象。

子类有(常用):

  1. arrayList特点(数据结构):查询速度快,增删改效率慢。
  2. LinkedList特点(链表接口):查询慢,增删改快。

Set接口继承了Collection接口

特点:无序,内容不可重复。

子类有(常用):

  1. HashSet特点:速度最快,存放没有顺序,元素可以为null,但只有一个。
  2. TreeSet特点:具有升序的功能。
  3. LinkedHashSet:有序保存。

Queue接口继承了Collection接口

特点:先进先出。

Queue与Looper、Message、Handler的关系。

Queue存放着Message,Looper循环取出Message,由Handler调用Looper的数据进行接下的操作。

Array与ArrayList

区别:

  • Array(数组):长度是固定不变的,遍历速度快(代码示例)
ArrayList<Integer> arrayList = new ArrayList<Integer>();
        //添加元素
        for(int i =0;i< 11999999;i++){
            arrayList.add(i);
        }
        //list => array
        Integer[] array = arrayList.toArray(new Integer[arrayList.size()]);

        long currentTimeMillis1 = System.currentTimeMillis();
        for(Integer i :array){}
        long currentTimeMillis2 = System.currentTimeMillis();
        System.out.println("遍历数组耗费时间: "+(currentTimeMillis2 - currentTimeMillis1)+" ms");

        currentTimeMillis1 = System.currentTimeMillis();
        for(Integer i : arrayList){}
        currentTimeMillis2 = System.currentTimeMillis();
        System.out.println("遍历列表耗费时间: "+(currentTimeMillis2 - currentTimeMillis1)+" ms");
  • ArrayList:长度可变(增长倍数1.5倍)。

Map接口

特点:以键值对形式存放,键不能重复(可以为null且只能有一个),值可以(可以多个为null)。

子类有(常用):

  1. HashMap特点:查询速度最快,无需存放。
  2. TreeMap特点:升序。
  3. LinkedHashMap特点:有顺序的保存,并且查询速度快。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值