集合框架
- 学习方法 【知识点的理解和认识】
(1) 执行流程[顺序 选择 循环]—>独立的方法的使用,对象:线程
(2) 面向对象的编程思想
将具有相同属性和行为的事物抽象出来,划分为类。每一个具体的事物就是一个对象,类是封装对象的属性和行为的载体,是构造对象的规范,对象即是类的实例。
(3) 计算机 是按照程序高速处理海量数据的现代化电子设备
(4) Java代码其实就是在处理数据 - 数据存储方式的回顾
(1) 变量:存储单个数据
(2) 数组:存储多个数据 - 设计一个容器类[基于数组实现的容器类]:掌握思想
(1) 实际就是对数组或变量的封装,底层就是对数组和变量进行操作 - 设计了,查找,删除的方法:体现设计代码:面向对象
- 链表结构的概念
(1) 单独设计一个节点类:存储数据的变量、存储下一个节点的地址的变量
(2) 每一添加一个元素就是新创建了一个节点,然后让上一个节点保存新创建节点的地址。 - 基于变量实现链表结构:掌握思想:看懂代码一样重要
LIST
1、集合框架
(1) 在Java中已经设计好了一些类和接口,和我们之前模拟的容器类功能一样。实现了对底层数组和聊表结果的封装操作。这些类在Java中,我们叫做集合;
2、ArrayList类
(1) 概念:
① ArrayList是基于数字实现的,底层是对数组的操作
② 实现了可选列表操作,可插入null值
③ 便于元素的查找可修改
④ 线程不安全的,可通过封装实现线程同步
List list = Collections.synchronizedList(new ArrayList(…));
(2) 构造方法
① ArrayList();构造一个初试容量为0 的空列表,JDK1.6为10,JDK1.8为0;
② ArrayList(int i);构造一个初试容量为i 的空列表
③ ArrayList(Collection <? extends E> c);构造一个包含Collection列表中所有元素的列表
(3) 普通方法
① void add(E e);将指定元素添加到列表结尾
② void add(int index,E e);在指定索引位置插入指定元素
③ void addAll(Collection <? extends E> c);将Collection列表中的所有元素添加到列表结尾
④ void addAll(int index,Collection <? extends E> c);将Collection列表中的所有元素添加到列表指定索引处
⑤ void clear();清空列表中的元素
⑥ boolean contains(Object obj);判断集合列表中是否有指定元素
⑦ void ensureCapacity(int i);将列表增加指定的容量
⑧ E get(int index);返回指定索引的元素
⑨ int indexOf(Object obj);返回指定元素在列表中首次出现的索引
⑩ boolean isEmpty();判断集合列表是否为空,空返回true,非空返回false
11 int lastIndexOf(Object obj);返回指定元素在列表中最后一个出现的索引
12 E remove(int index);返回指定索引的元素,并返回
13 boolean remove(Object obj);删除集合中首次出现的指定元素,若想删除int型的元素,为避免与方法的索引值冲突,则应将int型数据包装为Integer或Object型。
14 E set(int index,E element);用指定元素替代指定索引的元素
15 int size();返回集合列表的元素个数
16 object[] toArray();返回集合的数组形式
17 void trimTosize();去掉多余的容量
3、LinkedList类
(1) 概念:
① LinkedList是基于链表实现的,每添加一个元素都会创建一个节点
② LinkedList便于快速的插入和删除元素
③ LInkedList提供了额外的 get 、remove、 insert方法对链表的头,尾进行操作
④ LinkedList可以作为:堆栈 FILO 队列 排队:FIFO 双端队列
⑤ 实现了可选列表操作,都可插入null值
⑥ LinkedList都是线程不安全的,但可以通过包装来保持同步
List list = Collections.synchronizedList(new LinkedList(…));
(2) 构造方法
① LinkedList();构造空列表
② LinkedList(Collection <? extends E> c);构造一个包含Collection列表中所有元素的列表
(3) 普通方法
① E element();获取但不移除列表头,若列表为空,则抛出异常
② E peek();获取但不移除列表头,若列表为空,则返回null
③ E pop();获取并弹出列表头,若列表为空,则抛出异常
④ E poll();获取并弹出列表头,若列表为空,则返回null
⑤ 其他方法与ArrayList类似
4、集合的遍历
LinkedList<String> list = new LinkedList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
System.out.println(list);