【Java】Java容器篇一,宏观了解


文章目录

  • 【Java】Java容器篇一,宏观了解
  • 一,Java容器类类库的用途是"保存对象",并将其划分为两个不同的概念
  • 二,工具类(Collections)
  • 三,Collection的常用方法
  • 四,Map的常用方法
  • 如何学习一种体系结构:


建议整个系列一起看(更新中):
增强for:
泛型:
Java容器篇(一),宏观了解:
Java容器篇(二),深入理解List集合类:
Java容器类(三),深入理解Set集合类:
Java容器类(四),深入理解Map集合类
Java容器类(五),深入理解迭代器:

本篇将带大家宏观了解Java容器的基本架构,深入知识将分成几篇分别讲解,希望创作内容能够帮助到大家

java服务内存占用过高的原因_java

一,Java容器类类库的用途是"保存对象",并将其划分为两个不同的概念

  1. Collection: 一个独立元素的序列。
  1. List必须按照插入的顺序保存元素
  2. Set不能有重复元素
  1. Map: 一组成对的"键值对"对象,允许你使用键来查找值

映射表允许我们使用另一个对象来查找某个对象,它被称为"关联数组",因为它将某些对象与另外一些对象关联在了一起;被称为"字典",因为你可以使用键对象来查找值对象,就像在字典中使用单词来顶一样,Map是强大的编程工具


  1. 迭代器(Iterator)

任何容器类,都必须有某种方式可以插入元素并将他们再次取回,毕竟,持有事务是容器最基本的工作。

从更高层角度思考,就会发现有个缺点,要使用容器,必须对容器的确切类型编程,既不知道容器元素的类型,或根本不关心容器的类型,我们如何才能不重写代码就可以引用于不同类型的容器?

迭代器(也是一种设计模式)的概念就可以用于达成此目的。迭代器是一个对象,它的工作是遍历并选择序列中的对象,而客户端程序员不必知道或关心序列底层的结构。

此外迭代器同城被称为轻量级对象,创建它的代价很少

二,工具类(Collections)

Java.util包中的Arrays和Collection类中都有很多使用的方法,并且效率一般比自己手写的效率要高,所以要实现某些功能时,可尽量使用工具类(Collections);

类java.util.Collections提供了对Set,List,Map进行排序,填充,查找元素的辅助方法。

1. void sort(List)//对列表容器内部的元素排序,排序的规则是按照升序进行排序。

  2. void shuffle(List)//对List容器内部的元素进行随机排列。

  3. void reverse(List)//对列表容器内部的元素进行逆续排序。

  4. void fill(List,Object)//用一个特定的对象重写整个List容器。

  5. int binarySearch(List,Object)//对于顺序的List容器,采用折半查找的方法查找特定对象。

三,Collection的常用方法

本身是接口,实际使用的是子类对象,使用多态

Collection c = new ArrayList<>();

  • boolean add(E e):向集合中添加元素,添加成功返回true,添加失败返回false。

  • boolean remove(Objet o):删除元素中的指定元素,删除成功返回true,删除失败返回false
    void clear():清空集合中的元素
  • 判断
    boolean contains(Object o):判断集合中是否包含指定元素,包含返回true,不包含返回false
    boolean isEmpty():判断集合是否为空集合,即没有元素返回true,否则false
  • 转换
    Object[] toArray():将集合转换为Object[]

四,Map的常用方法

Map和Collection一样,同时接口,同样使用的是子类对象。

Map<K, V> map = new HashMap<>();

  • V put(K key,V value):添加键值对。
    注意:如果key已经存在,则会使用新的value覆盖原有的value,并将原有value返回

  • void clear():清空集合
    V remove(Object key):删除指定键的值(key 和value都会删除)
  • 判断
    boolean containsKey(Object key):是否包含指定的键
    boolean containsValue(Object value):是否包含指定的值
    boolean isEmpty():是否为空
  • 遍历:
    Set(Map.Entry<K,V>) entrySet();获取键值对的Set集合
    Set keySet():获取所有键的Set集合
    Collection values() 获取所有值的Collection集合

如何学习一种体系结构:

  • 从顶层开始学习共性
  • 从底层使用具体实现

// List,Set,Map,迭代器,将分别深入讲解,大家可以关注一下,马上更新完