Java集合

一,数组和集合
(1)数组可以储存基本数据类型,是用来存对象的一种容器,但是数组的长度
是固定的,不适合再对象数量未知的情况下使用,
(2)集合只能用来存储对象,对象类型不可以,长度可变,可再多数情况下使用

    **二,层次关系**
        Collection接口是集合类的根接口,Java中没有提供这个接口的直接实现类。但是

却让其他被继承产生两个接口,就是set和list。set中不能包含重复的元素,里面的元素是无序的。list是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式

        Map是Java.util包中的另一个接口,它和collection接口没有关系互相独立,但是都是属于集合类的一部分。map包含了key-value对。map不能包含重复的key,但是可以包含相同的value

    **三,几种重要的接口和类简介**
        1.list里面存放的对象是有序的,也是重复的,list关注的是索引,拥有一系类和索引相关的方法,

查询速度快。因为往list集合里面插数据或者删除数据时,会伴随着后面数据的移动,所以插入,删除数据慢
2.set (无序,不可重复)
set里面存放的对象是无序的,不可重复的,集合中的对象不按特定的方式排序(添加删除快)
3.map(键值对,键唯一,值不唯一)
map集合中存储的是键值对,键不能重复,值可以重复。根据键得到值,对map集合遍历时先的到键的set集合,对set集合进行遍历,得到响应的值collection,是无序的,允许元素重复

    **四,遍历**
        再类中提供了以下四种的常见输出方式:
            1)iterator:迭代输出,是使用最多的输出方式
            2)listIterator:是iterator的子接口,专门用于输出list中的内容
            3)foreach输出:jdk1.5以后提供的新功能,可以输出数组或集合
            4)for循环

    **五,ArryList和LinkedList**
        ArrayList和LinkedList在用法上没有区别,但是在功能上还是有区别的。

linedList经常用在增删操作较多而查询操作较少,arryList查询较多,增删教少

    **六,Map集合**
        实现类:HashMap,hashtable,linkedhashmap和treemap
HashMap
    HashMap是最常用的Map,它根据键的HashCode值存储数据,根据键获取它的值,

具有很快的访问速度,遍历时,获得数据的顺序是完全随机的。因为键对象不可重复,所以HashMap。
最多只允许一条记录为null,允许多条记录的值为空为null,是非同步的Hashtable
hashtable与hashmap类似是,是HashMap的线程完全版,它支持线程的同步,
即任意时刻只有一个线程能写Hashtable,因此也导致hashtable在写入时会比较慢,它继承自dictionary类,不同的是它不允许记录的键或者值为null,同时效率降低
map遍历
第一种:keyset()
将map中所有的键存入到set集合中。因为set具备迭代器。所以可以迭代方式
取出所有的键,再根据get方法。获取每个键对应的值。keyset():只能通过get取key。
取到的结果会乱序,是因为取得数据主键的时候,使用hashmap。keyset()方法,而这个方法返回的set结果,里面的数据乱序排放

第二种:entrySet()
set<map.entry<k,v> >entryset()//返回此映射中包含的映射关系的set视图。(一个关系就是

一个键-值对),就是把(key-value)作为一个整体一对一的存放到set集合中。map.entry表示映射
关系。entryset():迭代后可以e.getkey(),e.getvalue()两种方法来取key和value。返回entry接口。
推荐使用第二种方法,即entryset()方法,效率较高
对于keyset其实已经是遍历了2次,一次是转为iterator,一次是从hashmap中取出key
所对于的value。而entryset只是遍历了一次,他把key和value都放到entry中,所有快了。两次遍历时间相差还是比较明显的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值