一、集合
1、集合类概述
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,Java就提供了集合类。
2、数组和集合类的不同
(1)数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。
(2)数组中可以存储基本数据类型,集合只能存储对象。
3、集合类的特点
集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。
二、Collection接口
1、Collection 层次结构中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。
一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。
2、Collection接口成员方法
(1)添加功能:
boolean add(Object e) 向当前集合中添加给定的元素对象
booleana ddAll(Collection c) 向当前集合中添加给定的集合元素
(2)删除功能:
void clear() 把当前集合中的元素清空
boolean remove(Object o) 把当前集合中,给定的元素对象删除
boolean removeAll(Collection c) 在当前集合中, 将给定的集合元素 删除
(3)判断功能:
boolean contains(Object o) 判断当前集合中,是否包含给定的元素对象
boolean containsAll(Collection c) 判断当前集合中,是否包含给定的集合中的元素对象
boolean isEmpty() 判断当前集合是否为空的集合
(4)遍历功能:
Iterator iterator() 迭代器, 作用就是用来遍历集合的, 得到集合中的每一个元素
(5)交集功能:
boolean retainAll(Collection c) 获取当前集合与给定集合中 交集的元素对象
(6)长度功能:
int size() 获取集合中元素的个数
(7)转换功能:
Object[] toArray() 把当前集合中的元素, 转存到 数组中,可以实现集合的遍历
三、Iterator接口
1、Iterator接口概述
对 collection 进行迭代的迭代器
依赖于集合而存在
2、Iterator接口成员方法
boolean hasNext() 判断集合中有没有下一个元素
E next() 获取集合中的元素
案例:
四、List接口
1、List接口概述
有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。
用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
与 set 不同,列表通常允许重复的元素。
2、List接口成员方法
void add(int index,E element)
E remove(int index)
E get(int index)
E set(int index,E element)
ListIterator listIterator()
3、常见数据结构
栈 数据先进后出
队列 数据先进先出
数组
链表 记录地址
树 分支结构,排序
哈希表 存储哈希值的数组
4、ArrayList类概述及使用
(1)ArrayList类概述
底层数据结构是数组,查询快,增删慢
线程不安全,效率高
容量10个,增长50%。
5、Vector类概述及使用
(1)Vector类概述
底层数据结构是数组,查询快,增删慢
线程安全,效率低
容量10个,增长100%
(2)Vector类特有功能
public void addElement(E obj)
public E elementAt(int index)
public Enumeration elements()
6、LinkedList类概述及使用
(1)LinkedList类概述
底层数据结构是链表,查询慢,增删快
线程不安全,效率高
(2)LinkedList类特有功能
public void addFirst(E e)及addLast(E e)
public E getFirst()及getLast()
public E removeFirst()及public E removeLast()
7、泛型概述及使用
1、好处
(1)可以把代码运行的时候才能看到的错误,提前到,编写代码的阶段
把运行期的错误,提前到编译期
(2)省去了强制转换的麻烦
(3)有效的避免了类型转换异常 ClassCastException
2、泛型应用
(1)泛型类
把泛型定义在类上
格式:public class 类名<泛型类型1,…>
注意:泛型类型必须是引用类型
(2)泛型方法
把泛型定义在方法上
格式:public <泛型类型> 返回类型 方法名(泛型类型 .)
(3)泛型接口
把泛型定义在接口上
格式:public interface 接口名<泛型类型1…>
(4)泛型高级(通配符)
泛型通配符<?>
任意类型,如果没有明确,那么就是Object以及任意的Java类了
8、ArrayList、 Vector、 LinkedList三者的区别
(1)ArrayList:
底层: 采用数组结构
特点: 线程不同步-- 不安全--效率高】
增删慢,查找快
jdk1.2
(2)Vector:
底层: 采用数组结构
特点: 线程同步 -- 安全 --效率低
增删慢,查找快
jdk1.0
(3)LinkedList:
底层: 采用链表结构
特点: 线程不同步-- 不安全--效率高
增删快,查找慢
jdk1.2
(4)数组中有length方法吗? 字符串中有length()方法吗? 集合中有length()方法吗?
答:数组中没有length方法,有的是length属性
字符串中有length方法
集合中没有length方法, 有的是 size方法
案例:
五、增强for概述及使用
1、增强for概述
简化数组和Collection集合的遍历
格式:
for(元素数据类型 变量 : 数组或者Collection集合) {
使用变量即可,该变量就是元素
}
好处:简化遍历
注意事项:增强for的目标要判断是否为null
案例:
Java基础---集合(Collection接口、List接口及其子类、增强for)
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------