Java的集合框架

集合(Collection)的概念:是指具有某种特定性质的具体的或抽象的对象汇总成的集体,这些对象称为该集合的元素

  • 集合与对应思想:是整体与个体、整体与整体、个体与个体关系的反映。
  • 集合中只能保存对象(保存对象的引用变量)===>解释:对象放入集合中后,系统会把所有集合元素自动默认为(Object类)类的实例进行处理。
  • 泛型限制集合里元素的类型,并让集合记住所有元素的类型。====>理解:物以类聚!!eg:特定的容器容纳特定的类型的物体,排斥其他类型的物体。强行的容纳,容器或者物体将会损坏。容器类型和物体类型是相互匹配的
  • 框架的定义:框架就是一组相互协作的类

Collection接口:集合框架的顶级接口,同时是一个泛型接口。

Collection接口下的子类接口及实现类


  • List接口:有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问。List接口 是Collection的子接口,因此继承了Collection的所有方法,在此基础上扩展的方法都与索引有关。

    • ArrayList是List接口的实现类,里面的元素采取数组方式存储—>连续内存存储。与数组的区别主要在于,数组是定长而 ArrayLis变长。

      • 常用方法:add(Object o);->集合中添加数据
      • remove(Object o)->删除集合中的数据
      • add(int index, Object element)->给集合中某个索引位置添加一个数据
      • get(int index)->获取集合中某个位置的信息
    • LinkedList既是List接口的实现类也是Queue接口的实现类,实现了链表的数据结构。

      • LinkedList是以链表的方式存放的,每个节点上存放的是数据信息
      • 常用方法:add(E element)—向链表末尾添加一个新的节点,该点中的数据是参数element指定的对象。
    • add(int index, E element)—向链表的指定位置添加一个新的 节点,该节点中的数据是参数element指定的对象。
      • 扩展的方法:addFirst(E element)—向链表的头添加新节点,该节点中的数据是参数element指定的对象。
      • addLast(E element)—向链表的末尾添加新节点,该节点中 的数据是参数element指定的对象。
    • ArrayList与LinkedList的主要区别是,ArrayLis读写速度更快,LinkedList插入与删除数据更快。

  • Queue接口:Queue是Collection的子接口,具有所有集合基本操作。特点是“先进先出”。理解:排队过巷道,先进去的先通过出来。只允许(取出元素,即通过巷道)(添加元素,即继续排队)操作,不允许插队!!

  • Set接口:是无序集合,集合中的元素不可以重复。解释:访问集合中的元素时,只能直接元素本身,因此元素不可以重复。
    • HashSet是Set接口的实现类。按照哈希算法来存取对象,当向集合中加入一个新对象时,会调用对象的hashCode()方法得到对象的哈希码,然后根据这个码计算出对象在集合中存储的位置。基于HashMap实现。
      • HashSet的常用方法:add(E o)将指定的元素添加到 set
    • TreeSet是Set接口的实现类。存储的对象必须实现Comparable接口。相对与HashSet访问速度慢,性能相对低。但是可以根据元素的某一属性实现排序。(基于Set接口的子接口SortedSet实现排序)
      • TreeSet的常用方法: add(E o)将指定的元素添加到 set(如果尚未存在于该set中)。

Map接口:Map也是顶级接口,用来保存键值对。即:Map存的是一对一对的数据。

  • Map中保存的是键值对Map< key,Value> ,Key值不允许重复。

    • 常用方法: put(K key,V value)该方法可以将key
      和value存到Map对象
      get(Object key)该方法可以根据key值返回对应的value。
      size()返回Map对象中键值对的数量。
  • Entry接口:

  • HashMap:HashMap通过hashcode对其内容进行快速查找, HashMap中元素的排列顺序是不固定的。
    • HashMap的常用方法
    • put< key,value>—>存放对象
    • get(key); —>获取key所对应的数据。
    • keySet() —> 返回此映射中所包含的键的 set 视图。
  • TreeMap:TreeMap中所有的元素都保持着某种固定的顺序,如果需要得到一个有序的Map就应该使用TreeMap.
    • 适用于按自然顺序或自定义顺序遍历键(key)。
      TreeMap根据key值排序,key值需要实现Comparable接口,
      实现compareTo方法。TreeMap根据compareTo的逻辑,对
      key进行排序。
  • Collections类: 是集合类的工具类,与数组的工具类Arrays类似
    定义了大量静态方法
    同步集合对象的方法
    对List排序的方法
  • Collections方法的介绍
    —同步集合的方法
    Set synchronizedSet(Set s) 返回由指定 set 支持的同步(线程安全)的set。
    Map

Iterator接口:迭代器。

Iterator<Integer> iter = list.iterator();
        while(iter.hasNext()){
            System.out.println(iter.next());
        }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值