java基础之集合框架总结篇

(一).java集合框架轮廓(图片来自网络):下面两张图能说整个集合框架的层次和结构!

(ps)这里的很多总结是我把某培训机构视频全部看了,发现老师总结的很好就把它贴在这里了,权当自己在写代码时不记得给自己一个提醒作用。

(二).Collection集合总结

    Collection
                 |--List 有序,可重复
                       |--ArrayList
                              底层数据结构是数组,查询快,增删慢。
                              线程不安全,效率高
                       |--Vector
                              底层数据结构是数组,查询快,增删慢。
                              线程安全,效率低
                       |--LinkedList
                             底层数据结构是链表,查询慢,增删快。
                            线程不安全,效率高
                |--Set 无序,唯一
                       |--HashSet
                            底层数据结构是哈希表。
                           如何保证元素唯一性的呢?     依赖两个方法:hashCode()和equals(),开发中自动生成这两个方法即可
                       |--LinkedHashSet
                            底层数据结构是链表和哈希表
                            由链表保证元素有序
                            由哈希表保证元素唯一
                       |--TreeSet
                             底层数据结构是红黑树。
                             如何保证元素排序的呢? (1). 自然排序   (2).比较器排序
             如何保证元素唯一性的呢?       根据比较的返回值是否是0来决定

(三).Set集合:

    (1)Set集合的特点
        无序,唯一
     (2)HashSet集合

        A:底层数据结构是哈希表(是一个元素为链表的数组)
        B:哈希表底层依赖两个方法:hashCode()和equals()
          执行顺序:
           首先比较哈希值是否相同
            相同:继续执行equals()方法
                    返回true:元素重复了,不添加
               返回false:直接把元素添加到集合
            不同:就直接把元素添加到集合
        C:如何保证元素唯一性的呢?
           由hashCode()和equals()保证的
        D:开发的时候,代码非常的简单,自动生成即可。
        E:HashSet存储字符串并遍历
        F:HashSet存储自定义对象并遍历(对象的成员变量值相同即为同一个元素)
     (3)TreeSet集合
        A:底层数据结构是红黑树(是一个自平衡的二叉树)
        B:保证元素的排序方式
           a:自然排序(元素具备比较性)
              让元素所属的类实现Comparable接口
           b:比较器排序(集合具备比较性)
              让集合构造方法接收Comparator的实现类对象

(四).Map(掌握)
     (1)将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。 
     (2)Map和Collection的区别?
        A:Map 存储的是键值对形式的元素,键唯一,值可以重复。夫妻对
        B:Collection 存储的是单独出现的元素,子接口Set元素唯一,子接口List元素可重复。光棍
     (3)Map接口功能概述
        A:添加功能
        B:删除功能
        C:判断功能
        D:获取功能
        E:长度功能
       (4)Map集合的遍历
        A:键找值
           a:获取所有键的集合
           b:遍历键的集合,得到每一个键
           c:根据键到集合中去找值
  
         B:键值对对象找键和值
           a:获取所有的键值对对象的集合
           b:遍历键值对对象的集合,获取每一个键值对对象
           c:根据键值对对象去获取键和值
   
    (遍历)代码体现:
         Map<String,String> hm = new HashMap<String,String>();
   
           hm.put("a002","hello");
           hm.put("a003","world");
           hm.put("a001","java");
   
         //方式1 键找值
         Set<String> set = hm.keySet();
         for(String key : set) {//增强for
          String value = hm.get(key);
          System.out.println(key+"---"+value);
         }
   
         //方式2 键值对对象找键和值:这个在servlet中写选购商品程序是一段模版代码
         Set<Map.Entry<String,String>> set2 = hm.entrySet();
         for(Map.Entry<String,String> me : set2) {
            String key = me.getKey();
            String value = me.getValue();
            System.out.println(key+"---"+value);
         }
     (5)HashMap集合的练习
        A:HashMap<String,String>
        B:HashMap<Integer,String>
        C:HashMap<String,Student>
        D:HashMap<Student,String>
     (6)TreeMap集合的练习  
        A:TreeMap<String,String>
        B:TreeMap<Student,String>
(五).在集合中常见的数据结构:

     ArrayXxx:底层数据结构是数组,查询快,增删慢
     LinkedXxx:底层数据结构是链表,查询慢,增删快
     HashXxx:底层数据结构是哈希表。依赖两个方法:hashCode()和equals()
     TreeXxx:底层数据结构是二叉树。两种方式排序:自然排序和比较器排序

(六).:Collections

     (1)是针对集合进行操作的工具类
     (2)问题:Collection和Collections的区别?
        (i):Collection 是单列集合的顶层接口,有两个子接口List和Set
        (ii):Collections 是针对集合进行操作的工具类,可以对集合进行排序和查找等
     (3)常见的几个小方法:
        (i):  public static <T> void sort(List<T> list)
        (ii): public static <T> int binarySearch(List<?> list,T key)
        (iii): public static <T> T max(Collection<?> coll)
        (iiii):public static void reverse(List<?> list)
        (iiiii):public static void shuffle(List<?> list)
     (4)案例
        (i):ArrayList集合存储自定义对象的排序
        (ii):模拟斗地主洗牌和发牌
        (iii):模拟斗地主洗牌和发牌并对牌进行排序

时间: 2024-10-06 21:35:53

java基础之集合框架总结篇的相关文章

JAVA基础之集合框架

集合框架(collections framework) 首先要明确,集合代表了一组对象(和数组一样,但数组长度不能变,而集合能).Java中的集合框架定义了一套规范,用来表示.操作集合,使具体操作与实现细节解耦. 其实说白了,可以把一个集合看成一个微型数据库,操作不外乎"增删改查"四种操作,我们在学习使用一个具体的集合类时,需要把这四个操作的时空复杂度弄清楚了,基本上就可以说掌握这个类了. 设计理念 主要理念用一句话概括就是:提供一套"小而美"的API.API需要对

JAVA基础接口集合框架

接口--------------------------------------------------------------------------------一.接口(是一种规范)1.接口名/接口文件与类类似,也是用.java文件编写2.关键字 interface 接口名命名规范与类名相同 习惯上可以使用I开头表示3. 接口额访问修饰符只能使用public和default修饰不能使用private和protected在接口中默认缺省为public4.接口中的所有属性只能为公开的静态的常量而

Java基础之集合框架(Collection接口和List接口)

首先我们说说集合有什么作用. 一.集合的作用 1.在类的内部,对数据进行组织: 2.简单而快速的搜索大数量的条目: 3.有的集合接口,提供一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关元素: 例如:做广播操的时候,可以将学生插入到某排某列,反之也可以叫某排某列中的学生出列. 4.有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型. 例如:在吃饭的时候,众多铝饭盒中如何区别是自己的呢?在饭盒上刻独有的标志或贴纸条,这个标志和

黑马程序员——【Java基础】——集合框架

一.集合框架概述 (一)集合框架中集合类关系简化图 (二)为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是用于存储对象的. (三)数组和集合类同是容器,有何不同? .数组长度是固定的:集合长度是可变的. 2.数组中可以存储基本数据类型,集合只能存储对象. (四)集合类的特点 集合可以存储不同类型的对象.集合只用于存储对象,集合长度是可变的. (五)为什么会出现这么多容器? 因为每一个容器对数据的存储方式都有不同,这个存储方式称

Java基础之集合框架详解(一)

集合框架的相关定义 集合:即存储对象的容器. 框架:即类库的集合. 集合框架:即用来表示和操作集合的统一框架,由相关的接口.实现类和一些帮助程序员完成编程的算法. 集合的作用: 在类的内部,对数据进行组织 简单而快速的搜索大数量的条目 有的集合接口,提供了一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关元素 有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型 集合与数组的区别: 集合长度是可变的,数组长度是固定不变的 集合中

Java基础之集合框架详解(三)Set篇

相关定义 作为Collection接口的重要子接口,Set接口是一个不包含重复元素,且元素排列无序的集合,也被称为集. 注意:不包含重复元素的含义,更确切的讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素. Set接口的方法和Collection接口的方法大体相同,也就是说Set接口不像List接口那样可以通过索引或去元素,只能通过Iterator()方法获取迭代器进行迭代. Set中的add方法不同于Collection接口,有一个

Java中的集合框架(上)

Java中的集合框架概述 集合的概念: Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象. 集合的作用: 1.在类的内部,对数据进行组织: 2.简单的快速的搜索大数据量的条目: 3.有的集合接口,提供了一系列排列有序的元素,并且 可以在序列中间快速的插入或删除有关的元素. 4.有的集合接口,提供了映射关系,可以通过 关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型. 与数组的对比一为何选择集合而不是数组 1.数组的长度固定,集合长度可变 2.数

java基础之集合List-ArrayList、LinkedList、Vector的区别

PS:本篇博客主要参考jdk的底层源码,而非自己动手写代码. 请问ArrayList.LinkedList.Vector的区别 ①ArrayList底层实际上是采用数组实现的(并且该数组的类型的Object类型的) ②如果jdk6,采用Array.copyOf()方法来生成一个新的数组,如果是jdk5,采用的是System.arraycopy()方法(当添加的数据量大于数组的长度时候) ③List list = newArrayList()时,底层会生成一个长度为10的数组来存放对象 ④Arra

黑马程序员——黑马基础——Map,集合框架工具类Conlections和Arrays

黑马程序员--黑马基础--Map,集合框架工具类Conlections和Arrays ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一,Map集合 Map<K,V>集合是一个接口,和List集合及Set集合不同的是,它是双列集合,并且可以给对象加上名字,即键(Key). 特点: 1)该集合存储键值对,一对一对往里存 2)要保证键的唯一性. Map集合的子类 Map |--Hashtable:底层是哈希表数据结构,不可以存入null键nu