Java集合简单总结

在Java语言中,学好集合是非常重要的,下面简单的对集合进行总结,以便大家学习,有问题再相互交流。

                                                

aa.png (39.33 KB, 下载次数: 14)

下载附件

2013-5-19 22:44 上传


                                                                            集合框架图
         在集合框架图中可以看出,Collection接口中主要有两个子接口,分别是List和Set。List集合的特点是元素有序、包含重复元素,Set集合的特点是元素无序、不包含重复元 素。Map 集合中存储的是键值映射关系,元素都是成对出现的。Map 接口的主要子接口有HashMap TreeMap
总结 ist 有顺序有重复没有排序,set 无重复有排序,map key 也和set 一样。
  List接口
List : 特点是元素有序、可以包含重复元素。它有两个实现类分别是:ArrayList LinkedList
  ArrayList : 内部维护一个数组结构,允许对元素进行快速随机访问,但是向List 中间插入与移除元素的速度很慢。
LinkedList : 内部维护了一个双向链表结构,即通过节点之间彼此连接来实现的,每一个节点都包含前一个节点和后一个节点的引用。当一个新节点插入时,只需要修改其中保持先后关系的节点引用即可,这样的存储结构保证了LinkedList 集合在增删元素时效率非常高。
  Set接口
Set 具有与Collection 完全一样的接口,因此没有任何额外的功能,不像前面的List 。实际上Set 就是Collection 只是行为不同,也就是说Set 集合并没有对Collection 接口进行扩充,只是比collection 接口要求更加严了。
  Set : 存入Set 的每个元素都必须是唯一的,因为Set 不保存重复元素。加入Set 的元素必须定义equals() 方法以确保对象的唯一性。
  HashSet : 为快速查找设计的Set 。存入HashSet 的对象必须定义hashCode()
  TreeSet : 保存有序的Set, 底层为树结构。使用它可以从Set 中提取有序的序列。
  LinkedHashSet : 具有HashSet 的查询速度,且内部使用链表维护元素的顺序。于是在使用迭代器遍历Set 时,结果会按元素插入的次序显示。
  Map接口
        Map 用于保存具有映射关系的数据,因此Map 集合里存储两组值,一组用于保存Map 里的key ,另一组用于保存Map 中的value,key value 都可以是任意引用类型数据,其中,作为key 的值是不允许重复的,而value 中可以出现重复。Map : 维护键值对的关联性,使你可以通过查找
        HashMap 就是使用对象的hashCode() 进行快速查询的。此方法能够显著提高性能。HashMap 集合是基于哈希表的Map 接口实现,并允许使用null null 值,但必须保证键的唯一性。
        LinkedHashMap : 类似于HashMap ,但是迭代遍历它时,取得键值对的顺序是其插入次序。而在迭代访问时发而更快,因为它使用链表维护内部次序。
        TreeMap : 基于红黑树数据结构的实现。查看键值对时,它们会被排序( 顺序由Comparabel Comparator 决定) TreeMap 的特点在于,你得到的结果是经过排序的。
        Hashtable 线程安全,但是存取速度很慢,且不允许存放null null 值,目前基本上被hashMap 类所取代。Hashtable 有一个重要的子类Properties。
           Properties:java.util.Properties; key和value都是String类型,用来读配置文件。继承自Hashtable,比 Hashtable 更严格 属性列表中每个键及其对应值都是一个字符串。常用方法 String getProperty(String?key) 和 setProperty(String key,String value);  用法:我在D盘下建了一个名为 AA.dat 的文件,文件的内容为:   name=ch   password=12345   执行以下程序,输出 ch,可见用 Properties 可以很方便的解析配置文件  Properties p = new Properties();p.load(new FileInputStream("D:\\AA.dat"));  System.out.println(p.getProperty("name"))   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值