卢雨杰10.08

学习内容:

​ 使用数组的缺陷:

1:数组的长度固定不变,不能很好的适应元素数量动态变化的情况

2:可通过数组名.length获取数组的长度,却无法直接获取数组中实际存储的元素个数

3:数组采用在内存中分配连续空间的存储方式,根据元素信息查找时效率较低,需要多次比较

JAVA 集合框架提供了一套性能优良,使用方便的接口和类

​ iterable接口,凡是实现了此接口的对象都能成为for-each-loop的目标

iterator()方法返回的是一个类型的迭代器

Iterable的每个元素执行给定的操作,直到所有元素都被处理或动作引发异常。 除非实现类另有规定,否则按照迭代的顺序执行操作(如果指接口定了迭代顺序)。 动作抛出的异常被转发给呼叫者。

collection接口

​ collection继承自iterable接口,因此他们都能作为for-each-loop的目标

主要方法:

add();添加元素

contains();集合中是否包含此元素

isempty();判断集合中饰扣含有元素,如果没有返回true

iterator():继承自iterable接口,返回集合的迭代器

size():返回集合中的元素个数;

queue 队列

​ 设计用于在处理之前保留元素的集合。 除了基本的 Collection 操作之外,队列还提供额外的插入,提取和检查操作

不可以存在null

双端队列Deque

继承自queue,支持两端元素插入和和移出的线性集合

set

不包含重复元素的集合。

常用的子类:hashset和treeset

List

有序集合,该集合用户可以精确控制列表中每个元素的插入位置。 用户可以通过整数 索引(列表中的位置)访问元素,并搜索列表中的元素

List 通常允许重复的元素、允许 null 元素

vector

Vector 类实现了可扩展的对象数组。 像数组一样,它包含可以使用整数索引访问的组件。 但是, Vector的大小可以变化。
Vector 是同步的,是线程安全的。
Vector 继承了 AbstractList 类,实现了 List 接口
默认大小是10,当容量不足时,默认扩容方式是按倍增长

子类, Stack

stack

Stack类代表后进先出(last-in-first-out)堆栈的对象,Stack继承自

vector所以他有他的所有的方法

ArrayList

ArrayList 是 AbstractList 类的子类,同时实现了 List 接口。
ArrayList 不是同步的,也就是说是非线程安全的。

进程:电脑每一个单独运行程序在执行是会有一个独立的进程,进程之间是相互独立的存在

线程:进程想要执行任务就要依赖线程,即线程是进程的最小执行单位,且进程中至少有一个线程

线程安全:当多个线程访问某个方法时,不管通过怎样的调用方式,我们在主程序中不需要做任何同步,这个类的行为结果都是我们设想的正确行为

ArrayList 内部是使用数组存储数据,也就是说在内存中开辟一个连续的空间。是一个可变的数组, 可以向 ArrayList 中添加不同类型数据,这些数据都将转换 Object 类型存储。
初始化容量是 10 存储数据的对象是 Object[] elementData 当容量不足时,扩容1.5倍
ArrayList 中的方法中大部分方法都是实现自 List 接口。

contains 方法在判断对象时,对象的类中要重写 equals 方法
Arrays.asList() 方法返回一个只读集合

学习心得:

​ 学得越多忘得越多的感觉,放假太没有自制力了,需要检讨自己在假期的所作所为,今天的学习任务又没完成,感觉天天的学习都在带帐,周末放假应该补账的时候又只想耍,越拖越多,今天讲的集合还需要练习,每天都感觉时间不够用,东弄一点西弄一点再玩一点一天就过去了,啥也没弄完,这就是学渣的烦恼?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值