集合的体系结构——集合的基础知识

为什么需要集合

面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对多个对象进行存储,因为数组有一些弊端,所以引入了集合。

  1. 集合和数组都是对多个数据进行存储的结构,简称Java容器。
  2. 数组的特点,一旦初始化之后,其长度就固定了;声明数组的时候,需要指定数组的类型,其元素的类型也就确定了。比如:String [] arr; int [] arr; Object [] arr;
    3. 数组的缺点(反过来就是集合的优点)
    一旦初始化之后长度就不可修改了;
    数组中提供了方法非常的有限,对于添加、删除、插入数据非常的不方便、同时效率也很低下;
    获取数组中实际元素的个数,数组没有现成的属性或者方法可用;
    数组存储数据的特点是有序的,中间不能有空,数组存储数据的特点是有序、可重复。对于无序、不可重复的需求,不能满足。

Java集合可分为Collection和Map两种体系

  1. Collection接口:单列数据,定义了存储一组对象的方法的集合
  • List 接口:元素有序、可重复。(常被称为“动态”数组,自动扩容)
    ArrayList、LinkedList、Vector
  • Set 接口: 元素无序、不可重复 。(高中时候讲过的集合。无序性、确定性、互异性)
    Set的集合常常用于数据的过滤。
    HashSet、LinkedHashSet、TreeSet
  1. Map接口
    双列数据,保存具有映射关系“key - value对”的集合。
    (高中学过的 y = f(x)每一个x对应了一个y,不同的可能对应了同一个y,但是一个x不可能对应多个y,Map集合也是一个value可以对应不同的key,但是一个key不能对应多个value)
    HashMap 、LinkedHashMap、TreeMap、HashTable、properties

Collection接口继承树Map接口继承树
根据功能不同选择不同的容器。

前情回顾

Collection接口中的方法的使用

Collection collection = new ArrayList();
add(); size(); addAll();clear(); isEntry();

throw 和 throws 的异同

  1. 相同点:没有 (都是异常处理部分使用的,这算吗?)
  2. 异:
  • throw:生成一个异常对象,并且抛出。使用的位置在方法的内部,自动抛出异常对象。
  • throws:处理异常的方式,使用在方法声明的末尾,对应的另外一种方式是try catch finally
    “上游排污,下游治污”
    谈谈你对同步代码块中同步监视器和共享数据的理解及其各自要求。
    同步监视器:俗称锁。①任何一个类的对象都可以充当锁。② 多个线程共用同一把锁。
    共享数据:多个线程共同操作的数据,即同步数据,需要使用的同步机制讲操作共享数据的代码包起来,不能包多了,也不能包少了。

猜你喜欢

转载自blog.csdn.net/weixin_43941676/article/details/108186761