千锋教育Java入门全套视频教程(java核心技术,适合java零基础,Java

p144~p179---集合
1.数组的特点
- 创建时必须赋予确定的空间大小(长度固定)-----使用中如果数据超过空间大小会出现ArrayIndexOutOfBoundsException报错(下标超出)
- 不能满足实时动态新增元素的需求
- 存储数据类型固定唯一,不能存储事先定义的类型外的其他类型数据
- 不能满足灵活存储多种数据类型的需求
2.集合
- 动态扩容,无需指定初始空间(原理是其源码中有自动扩容的方法:常量++和移位)
- 允许用户不断新增元素,允许存放不同数据
概念
- 相同类型的数据的聚合体
- 是一种用于存储和操作数据的容器。它们提供了一系列方法和工具,用于添加、删除、查找、遍历和排序集合中的元素
- 是Java API所提供的一系列类,可以用于动态存放多个对象。--集合只能存对象
- 集合与数组的不同在于,集合是大小可变的序列,而且元素类型可以不受限定,只要是引用类型。(集合中不能放基本数据类型,但可以放基本数据类型的包装类)
- 集合类全部支持泛型,是一种数据安全的用法。
ArrayList
- ArrayList相比数组的区别
- 容量的可扩展性,数据类型只要是Object类型就行,存储的必须是对象,不能存储基础数据类型。
Set (没有下标,不可重复)
- set集合最大的作用去重
- 循环使用迭代器:lterator
set去重的原理:
- 基于每个元素的hashCode()和equals()方法。
- 当你向Set添加一个元素时,Set首先调用该元素的hashCode()方法获取其哈希码。然后,Set会检查是否已经存在具有相同哈希码的元素。如果存在,Set还会调用元素的equals()方法进行比较以确认它们是否相等。如果元素的哈希码和equals()方法都与已有元素匹配,Set会忽略该元素,不进行重复添加。
集合怎么判断两个对象是同一个对象 ?
- hashCode()+equals()双重判断