一、集合框架和泛型
1.集合框架
(1)定义:java中的集合是指一系列存储数据的接口和类,这些类和接口都位于java.util包中
(2)原因(为什么使用集合框架):a、数组的大小是固定的;b、数组保存数据类型是单一的;c、数组操作数据比较复杂
(3)分类:主要有Collection、Map两个接口组成。
Collection接口是集合中最大的接口(与Map接口是等级并列关系)
返回类型 | 方法名称 | 描述 |
boolean | add(Object o) | 在集合末尾添加元素 |
int | size() | 返回集合列表中元素个数 |
Object | get(int index) | 返回指定索引位置的元素,索引从0开始 |
boolean | removeAll(Collection col) | 删除集合中的所有元素 |
boolean | contains(Object o) | 判断集合中是否存在指定的元素 |
boolean | remove(Object o) | 从集合中删除元素 |
Object | remove(int index) | 从集合中删除指定索引位置的元素 |
void | clear() | 清除集合中的所有元素 |
Iterator | iterator() | 为Iterator接口实列化 |
Collection接口的常用方法,所有的List Set都有这些方法
<1>Collection 接口存储一组 不唯一、无序的对象.
<2>List 接口存储一组 不唯一、有序的对象.
<3>Set 接口存储一组 唯一、无序的对象.
<4>Map 接口存储一组键值对象, 提供 key-value(k-v)的映射.
<5>Iterator:迭代器.
<6>Collections:工具类.(提供了对集合进行排序、遍历等多种算法实现)
2、List 接口.
List 接口的实现类:
<1>ArrayList:实现了长度可变的数组,在内存中分配连续的空间,遍历元素 和随机访问元素效率高.
*常用方法:
<2>LinkedList:采用了链表存储方式,插入、删除元素是效率较高.
java valueof*常用方法:
3、Set接口
<1>存储唯一、无序的对象.
<2>Set 里面存放的是对象的引用.
<3>采用equals()方法比较两个对象是否为同一对象.
<4>Set是接口,没法new,不存在get()方法(因为set无序)
set接口中的数据不能通过下标去访问
遍历集合:转换成数组 增强型for 迭代器
Set 接口的实现类: HashSet
HashSet集合的特点:集合内的元素是无序排列的
HashSet类是非线性安全的
允许集合元素值为null
4、Iterator接口
<1>增强型 for
<2>迭代器 Iterator
*获取 Iterator:Collection 接口的 iterate()方法.
*Iterator 的方法:
*boolean hasNext(): 判断是否存在另一个可访问的元素.
*Object next(): 返回要访问的下一个元素.
5、Map 接口.
Map 接口存储一组成对的键key 值value
Key:唯一 无序 value:不唯一 无序
(1) 以键值对形式存储数据 (2)不允许出现重复键 (3) 元素存储顺序无序
Map 接口实现类:
<1>HashMap.
*常用方法:
<2>遍历 Map 集合:
*增强型 for
*迭代器 Iterator
获得 Map 键和值的方式:
<1>keySet() --Set
迭代这个 Set(Iterator)
get(key)
<2>entrySet()--Set(Map.Entry)
增强型 for(或者 Iterator)
getKey()
getValue()
6、泛型.
<1>将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性.
<2>典型的泛型集合: ArrayList<E> HashMap<K,V> *<E><K,V>表示该泛型集合中的元素类型.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论