集合知识的补充

发布时间 2023-12-17 01:58:47作者: sixsix666

集合的分类

               

     collection为单列集合(每一个元素对应一个数据)

  map为双列集合(每一个元素对应一对数据)

接下来对collection分析

    1、单列集合的顶层接口,定义的是所有单列集合共有的功能
              2、接口不可实例化,要调用接口的方法时,随意找个实现类即可(多态)
              eg:Collection c = new ArrayList()   **相当于是一个接口的调用new了一个实现类

    3. Collection接口常用方法
                     add : 添加单个元素;     
                     remove : 删除指定元素;
                     contains : 查找元素是否存在;
                     size : 获取元素个数;
                     isEmpty : 判断是否为空;
                     clear : 清空;
                     addAll : 添加多个元素;
                     containaAll :查找多个元素是否都存在;
                      removeAll : 删除多个元素;

 

            4.

   

             

           如上图可以用while循环来判断是否还有下一个元素

           处理用迭代器也可以运用增强for循环

           

 

 collection中的list接口:

         

             ** list同样可以运用迭代器和增强for循环进行元素的遍历

                   

※ ArrayList 使用注意事项
允许存放任何元素,包括空元素null
ArrayList 是由数组来实现数据存储的;
ArrayList基本等同于 Vector ,除了 ArrayList是线程不安全的,但执行效率高,在多线程的情况下不建议用ArrayList;

※LinkedList的方法可以从网上查询

   

collection中的set接口:

1.Set 接口介绍:

  1. 无序(添加和取出的顺序不一致),没有索引;
  2. 不允许重复元素,所以最多包含一个null;
  3. JDK API 中Set的常用实现类有:HashSet 和 TreeSet

2.Set 接口的常用方法

和 List 接口一样,Set 接口也是 Collection 的子接口,所以常用方法和Collection接口一样
Set 接口的遍历方式同 Collection 的遍历一样:

       迭代器遍历
       增强 for
       但 不能用索引 的方式来获取; (因为Set无序)

 

> HashSet

  1. HashSet实现了Set接口;
  2. HashSet实际上是HashMap,可以从源码看出;
  3. 可以存放 null 值,但是只能有一个null;
  4. HashSet 不保证元素是有序的,取决于hash后,再确定索引的结果;
  5. 不能有重复元素 / 对象

 

接下来对map接口分析

1.Map 接口实现类的特点
2.Map 与 Collection 并列存在,用于保存具有映射关系的数据:Key - Value;
3.Map 中的 Key 和 Value 可以是任何引用类型的数据,会封装到 HashMap$Node对象中;
4.Map中的 Key 不允许重复,原因和 HashSet 一样;
5.Map 中的 Value 可以重复;
6.Map 的 Key 可以为 null,value 也可以为 null,但 key 为 null 只能有一个;
7常.用 String 类作为 Map 的 key,当然,其他类型也可以,但不常用;
8.Key 和 Value 之间存在单向一对一关系,即通过指定的 Key 总能找到对应的 Value;

> Map 接口和常用方法
put :添加
remove : 根据键删除映射关系
get : 根据键获取值
size : 获取元素个数
isEmpty : 判断个数是否为0
clear : 清除
containsKey : 查找键是否存在

 

 

 

 

> Hashtable
Hashtable的基本介绍:

存放的元素都是键值对,即 key - value;
Hashtable 的键和值都不能为 null,否则会抛出NullPointerException
Hashtable 使用方法基本上和 HashMap 一样;