回顾
Collection接口定义了集合所共有的方法
add(E e)向集合中添加元素
addAll(E e)把集合中添加的元素再次全部添加
remove(Object o)将集合中的元素移除(一次只能移除一个)
removeAll(Object o)将移除集合中的所有元素
isEmploy()返回boolean值,判断集合中的元素是否为空
size()返回int类型,获取当前集合中的元素的个数
iterator()遍历集合中的元素
hasNext()判断下一个元素之后还有没有值
next()获取下一个集合元素
contains()用于判断指定元素是否被集合包含,包含则为true
泛型
泛型,又称为是参数化类型。是JDK1.5之后推出的一个特性,泛型可以表示属性的类型,方法参数的类型以及返回值类型。
package sesson13;
/*
* 泛型,又称为是参数化类型,是JDK1.5之后推出的一个特性
* 泛型可以表示属性的类型,方法参数的类型以及返回值类型
*/
public class Num <T>{
private T numA;
private T numB;
public Num(T numA, T numB) {
super();
this.numA = numA;
this.numB = numB;
}
}
测试:
public class NumTest {
public static void main(String[] args) {
Num<Double> n1 = new Num<Double>(1.1, 1.2);
}
}
泛型的值全都都是引用类型,是基本类型的包装类
泛型是编译器认可的,泛型的原型就是Object
泛型在集合中的应用
集合中的元素可以是任意类型的,但是我们可以使用泛型强制要求集合里面存什么元素。
所以呢泛型在集合中的应用就是用来约束集合中的元素。
List集合
List接口继承了Collection接口,因此包含了Collection接口中的所有方法
List集合中的元素允许重复,并且都是有序的。各元素的顺序就是添加元素的顺序,类似于Java数组,用于可以通过索引来访问集合中的元素。所以也通常是把ArrayList叫做可变数组。
List集合包括List接口以及List接口的所有实现类最常用的是ArrayList。
List接口的实现类
ArrayList类实现了可变的数组,允许保存所有元素,包括null。有具体的下标, 适合查,不适合增和删
LinkedList类采用链表结构保存对象,不适合查,更适合增和删。
List接口还定义了两个非常重要的方法,作为List的实现类同样也具有这些方法。需要实现
get(),set()方法测试 测试
List集合重载了一对Collection集合中的add,remove方法,支持使用下标操作元素
subList(int index,int end)方法用于获取子集,前切一刀,后切一刀,取中间
总结:
get()获取指定下标对应的元素
set()将指定的元素设置到指定位置上,返回值为原位置对应的元素,所以set()也是替换元素操作
重载后的add(int index,E e)向指定位置插入指定元素,index:指集合中指定元素的位置
重载后的remove()删除指定位置处的元素
subList(int index,int end)用于获取子集,前切一刀,后切一刀。取中间,对子集的操作其实就是对元集合的操作
toArray()把当前集合转为一个数组
asList()把数组转为一个集合
Set
代码
List集合和Set集合的区别
Set集合中的元素是无序的
Set集合中的元素不允许重复
线程安全问题以后说
Map集合
Map集合没有继承Collection接口,包括Map接口以及Map接口的所有实现类。HashMap和TreeMap,,是key-value以键值对的形式存储。Map中不能包含相同的key,每个key只能映射一个value
Map集合中常用方法 Put(k k V v) 将给定的一组键值存储在Map集合中
get(Object k) 根据给定的Key获取对应的Value
remove( K,k)根据给定的Key 删除集合中Key对应的Value
原因:能确定key的值,就一定能精确快速的获取key对应的value。
很多的框架中的数据都是用Map存储的
Spring,Spring mvc, Struts2, tomcat, redis,mongodb,这些框架在内存中的数据存储都是用Map
总结:
标签: