`

集合框架

 
阅读更多

java集合架构支持3种类型的集合:规则集(Set),线性表(List),和图(Map),分别定义在Set,List,Map中。Set实例存储一组互不相同的元素(集合),List实例存储一组顺序排列的元素(表),Map存储一组 对象---关键值的映射
Collection接口: 

       Set接口: HashSet具体类、LinkedHashSet具体类、TreeSet具体类

       List接口: ArrayList具体类、LinkedList具体类、向量类Vector具体类、 Stack具体类
Map接口:HashMap类、LinkedHashMap类、TreeMap类            
  

1)先来说Collection接口,它是处理对象集合的根接口,提供了一些公用方法,size,Iterator,add,remove什么的
2)Set和List接口都扩展自Collection,Set就是高中数学里所说的集合,不允许重复,无序。List就像一个表,可以重复,元素在表里有顺序的放着。


3)然后来说Set接口的3种实现:
  HashSet的对象必须实现hashCode方法,javaAPI大多数类实现了hashCode方法。
  LinkedHashSet实现了对HashSet的扩展,支持规则集内元素的排序,在HashSet中元素是没有顺序的,而在LinkedHashSet中,可以按元素插入集合的顺序进行提取
  TreeSet保证集中的元素是有序的,有2种方法可以实现对象之间的可比较性:1,添加到TreeSet的对象实现了Comparable接口;2,给规则集的元素指定一个比较器(Comparator)

使用提示:
如果希望按照元素插入集合的顺序进行提取元素,用LinkedHashSet,它的元素按添加的顺序存储
如果没有上述需求,应该用HashSet,它的效率比LinkedHashSet高
LinkedHashSet只是按照添加的的先后顺序在存储时保持顺序,要给集合元素添加顺序属性,需要使用TreeSet(集合元素有排序关系)。


4)再来说List的几种实现
最重要的的当然是ArrayList(不同步)和LinkedList,一个使用数组实现的动态扩展容量的list,一个是链式实现的list。
还有就是Vector(同步)类,它除了包含访问和修改向量的同步方法之外,跟ArrayList一样。
最后就是Stack类,它继承自Vector类,,但一般只作为栈的功能来使用,不要去使用Vector里面的功能


5)Map
Map是映射,跟前面的Set和List有本质的区别。
散列图HashMap,链式散列图LinkedHashMap,树形图TreeHashMap是映射的3种实现,从名字上来说,有了上述Set的3种实现的分析,这个也是类似的。
HashMap:效率高
LikedHashMap:按照添加顺序存储,可以按添加顺序取出
TreeHashMap:排序性

Collections类和Arrays类:
Collections类(注意不是Collection):提供了许多静态的方法来管理集合,线性表(大多数是来操作线性表的,比如对线性表复制,排序之类的,参见API)

Arrays类:提供了对数组排序,查找,比较,填充元素的各种静态方法。

 

讲到最后顺带讲一下java的对象复杂点的排序就是实现Comparator接口了。如:

//sort方法的两个参数:比较的集合,比较器类的对象。
Collections.sort(list);
//比较器类,实现compare()方法
class AnimalsComparator implements Comparator<Animals> {
@Override
public int compare(Animals o1, Animals o2) {
if (o1.age > o2.age)
return 1;
if (o1.age < o2.age)
return -1;
else
return 0;
}
}

 

 

  

 

参考:http://www.cnblogs.com/kkgreen/archive/2011/05/25/2057221.html

分享到:
评论

相关推荐

    集合框架学习笔记

    集合框架学习笔记 https://mp.csdn.net/mdeditor/88970781#

    Java集合框架及泛型

    集合框架及泛型的介绍和基础理解,方便大家了解集合框架及泛型。

    Java集合框架使用总结

    Java集合框架使用总结 前言: 本文是对Java集合框架做了一个概括性的解说,目的是对Java集合框架体系有个总体认识,如果你想学习具体的接口和类的使用方法,请参看Java API文档。 一、概述 数据结构对程序设计...

    java集合框架图

    java集合框架图java集合框架图java集合框架图java集合框架图java集合框架图

    Java集合框架详解

    Java集合框架详解Java集合框架详解Java集合框架详解

    《集合框架及泛型》

    BDQN ACCP 7.0 Java《集合框架及泛型》学习资料.part1

    【Java】Java集合框架思维导图。

    xmind格式的Java集合框架学习导图,包括Collection接口/Map接口以及具体实现类。 同样包含大厂面试题,也在导图中有所体现。 能学到什么: 更加成体系的知识框架,更加全面的、系统的知识。 思维导图: 思维导图具有...

    Java集合框架.ppt

    集合是将多个元素组成一个单元的...Java集合框架,为我们提供了一套性能优良、使用方便的接口和类,我们不必再重新发明轮子,只需学会如何使用它们,就可以处理实际应用中出现的问题了Java集合框架位于java.util包中

    Java集合框架总结

    Java集合框架总结Java集合框架总结Java集合框架总结Java集合框架总结Java集合框架总结Java集合框架总结

    java集合框架面试题

    内含大量java集合框架方面常被面试官问到的经典面试题。

    学士后Java集合框架和泛型课后习题答案

    学士后Java集合框架和泛型课后习题答案 希望能够帮助大家更好的学习JAVA,这些知识还是比较基础的,并没有多大难度 一起共同进步

    集合框架的结构图,集合框架的结构图

    关于集合框架的系统结构图,感觉很详细了,忘了在哪个论坛上找的了,把图片考下来了,

    集合框架List、Map、Set接口及其子类综合对比

    Java基础知识汇总之集合框架List、Map、Set接口及其子类综合对比

    集合框架练习.doc

    集合框架练习.doc

    集合框架源码分析

    java集合- 集合框架源码分析

    集合框架及泛型资料

    集合框架及泛型资料

    数据结构和Java集合框架(英文版)

    学生通过学习方法描述和应用,可以逐步理解并有效地使用数据结构,还可以了解这些数据结构的多种实现,包括在java集合框架中提供的一些实现。.  本书内容丰富,且在每章章尾提供编程项目,以帮助学生提高实践能力。...

    Java集合框架面试题

    Java集合框架问题,整理整理整理整理整理整理整理整理整理

    java集合框架笔记

    List set ArraryList Map java集合框架笔记 基于Array的List,其实就是封装了Array所不具备的一些功能方便我们使用

    JAVA集合框架学习总结

    本文档为本人学习 java 集合框架期间的学习总结笔记,希望对新学习的朋友有所帮助和参考价值。本人java 开发时间不是太长,可能存在不完善或不对之处,欢迎指正!

Global site tag (gtag.js) - Google Analytics