一、集合
概述:
集合类存放的都是对象的引用,而非对象本身;
集合类型:set(集)、list(列表)和map(映射);
集合接口:Collection,Map,list,set;
集合是一个动态的数组;
集合里不能存放基本数据类型,可以存放包装类。
1.collection接口
表示一组对象;可重复,无序的
List集合 元素可重复;有序的;每一个元素都存在索引;
ArrayList 实现类
LinkedList 实现类
1.1.ArrayList常用方法
add( ) 添加元素
size( ) 集合的长度
get( index ) 返回指定索引处的元素
add(index,element) 在指定位置插入指定的元素
contains( ) 判断集合中是否存在指定的元素
remove() 删除集合中的元素
isEmpty ( ) 判断集合是否为空
1.2.LinkedList特有方法
addFirst( ) 开头添加元素
addLast( ) 结尾添加元素
removeFirst() 删除集合中头部的元素
removeLast() 删除集合中尾部的元素
1.3.ArrayList和LinkedList的异同
相同:都实现了List接口,存储可重复的,有序的数据。线程不安全,效率高;
区别:ArrayList 遍历快;增删慢;
LinkedList 查询慢,增删快;
2.Map集合
5.1.Map集合的特点:
1.存储键值对的集合(key--value)
2.键不能重复,值可以重复
3.元素存取无序
5.2.HashMap
线程不安全,效率高;
HashMap< K , V > K:键的类型;V:值的类型
2.1.Map集合常用方法
put( key , value ) 添加元素
get( key) 根据键获取值
keySet() 获取所有 键的集合
remove( key) 根据键 删除 键值对 元素
containsKey(key) 判断集合是否包含指定的键
containsValue( value) 判断集合是否包含指定的值
二、泛型
就是将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型。这种参数类型可以用在类、方法和接口中,分别被称为泛型类、泛型方法、泛型接口
1.泛型定义格式
<类型>:指定一种类型的格式。这里的类型可以看成是形参
1.2.泛型方法
定义格式:修饰符 <类型> 返回值类型 方法名(类型 变量名) { }
1.3.泛型接口
定义格式:修饰符 interface 接口名<类型> { }
2.泛型的好处
把运行时期的问题提前到了编译期间
避免了强制类型转换
三、迭代器
1.概述
迭代器,集合的专用遍历方式
迭代器通过集合的iterator()方法得到,是依赖于集合而存在的
hasNext( ) 判断集合中是否还有未标记的元素
2.用while循环进行元素的获取
Iterator<String> it = s . iterator(); (s是set类型的key集合)
while ( it.hasNext( ) ) {
String str = it.next( );
System.out.println(str);
}
四、增强for循环遍历(foreach)
for(数据类型 局部变量 :集合名){
}