zoukankan      html  css  js  c++  java
  • Java学习手记1——集合

    一.什么是集合

    集合是对象的集合,就像数组是数的集合。集合是一种容器,可以存放对象(可以是不同类型的对象)。

    二.集合的优点(为什么要用集合)

    当然,在java里,可以使用数组来存放一组类型相同的对象。但是数组存放对象有两个缺点(集合优点):

    1. 数组大小是固定的:数组的一旦创建,大小则是固定的。在要存放的对象个数不可知或者超过数组容量的情况下,不适用。
    2. 数组存放的对象个数不可知:数组的内存放了多少个对象不可以得知。

    三.集合的实现

    java中集合主要由两个接口实现:CollectionMap,Collection又有两个子接口:SetList

    Collection接口

                |-------List接口

                           |-------ArrayList类(主要实现类,类似数组),LinkedList类(类似链表),Vector类(线程安全的,不过比较老,不常用)

                |-------Set接口(下面的类实现了Collection接口,基本上没有添加新方法)

                           |-------HashSet(主要实现类,利用该类,需要重写equals()方法hashCode()方法

                           |-------LinkedHashSet(采用链表实现的hashset,遍历的时候按照添加的顺序)

                           |-------TreeSet(只能存放同类型,同时是有序的,此处的有序只按照添加对象的指定顺序。例如String按照字符串从小到大顺序,用的时候需要实现                                             java.lang.Comparable接口中的compareTo(Object o)方法,如果修改类不方便或者希望用一个通用的比较方法去比较多种对象,则可以创建一个实                                     现了Comparator接口的Comparator对象,并重写compare()方法,再在创建TreeSet接口的对象时构造器调用该对象

    Map接口

                |-------HashMap,LinkedHashMap,TreeMap,Hashtable

    各个接口的特点:

    Set:元素无序,不可重复。SortedSet是一个按照升序排列元素的Set。

    List:元素有序,可重复。提供了按照索引访问的方式。可以看作“动态数组”,

    Map:具有映射关系“key-value”的键值对。一个键对应一个值,使用时根据键来寻找值,所以键不可重复,值可重复。

    注:这里对无序、有序的理解:是指元素在内部实现的存储方式不同,有序例如:数组,指针。无序例如:哈希表。

    下图为Collection接口继承树:

    下面好像要分别来讲下List,Set,Map接口了,算了,另开一篇再讲吧~

     

  • 相关阅读:
    Post和Get的区别(兼谈页面间传值的方式)
    ClickOnce部署Winform程序的方方面面
    TSQL查询进阶深入浅出视图
    一个java volatile测试揭开的陷阱
    java volatile的一个验证反例
    [Swing扩展组件分享]为JTable添加选择列(CheckBox)的包装类
    JTextField限制输入长度的完美解决方案
    swing程序的关闭机制看好你的swing.Timer,别让它成为程序不能退出的原凶
    举例理解单元测试
    打印出txt中出现频率最高的十个词——软件工程个人项目C语言
  • 原文地址:https://www.cnblogs.com/jizhji/p/5770110.html
Copyright © 2011-2022 走看看