一、数组介绍
Collection接口存储一组不唯一,无序的对象
List接口存储一组不唯一,有序的对象
ArrayList实现了长度可变数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高
set接口存储一组唯一,无序的对象
Map接口存储一组唯一,无序对象
不唯一有序 唯一 有序
二、数组特点
1.List 接口的实现类
ArrayList 不唯一 有序 优点遍历效率高
LinkedList 不唯一 有序 插入和删除的时候效率高
2. ArrayList的应用
//1-声明集合
List lis=new ArrayList();
lis.add(Object对象 dog1);
lis.add(int 索引号,dog5)
lis.sizi(); 长度
//5删除方式
lis.remove(0);//删除索引号为0对象
lis.remove(dog2);//按照指定的对象名删除
遍历方式foreach遍历方式
System.out.println("foreach遍历方式");
for (Object obj:lis){
((Dog)obj).print();
}
for循环遍历
for (int i = 0; i <lis.size() ; i++) {
Object obj=lis.get(i);//Object-->Dog 拆箱
Dog dogs=(Dog)obj;
dogs.print();
}
是否包含对象存
//6contains判断对象是否存在
if(lis.contains(dog2)){
System.out.println("楠楠对象存在");
}else {
System.out.println("楠楠对象不存在");
}
三、集合的好处
集合框架的好处?
1.当数据非常多而且数量不确定的时候这个时候考虑集合框架
java集合中包含那些接口?
Collection 和Map接口
Collection接口包括list set 接口
list接口又包括2个类ArrayList和LinKedList类
ArrayList和和LinkedList有何区别
都是只能用索引号遍历的
ArrayList 添加了删除遍历这样的一个方法
LinkeddList基础上是加入了快速的第一行或最后一行删除的方法
四、vactor和ArrayList的异同
实现原理,功能相同,可以互用
主要区别
vetor线程安全,ArrList重速度轻安全,线程非安全 长度需增长时,Vector默认增长一倍,ArrayList增长50%
Hashtable和HashMap的异同
实现原理,功能相同,可以互用
主要区别
Hashtable继承Dictionary类,HashMap实现Map接口
Hashtable线程安全,HashMap线程非安全
Hashtable不允许null值,HashMap允许空值
泛型集合
Collection、List、Set、Map接口的联系和区别
HashMap的应用ltertord的应用
有迭代器来遍历集合当中的数据
//方式1:迭代器方式
Set keys= dogMap.keySet(); //把所有的key值给Set 变量
//获得Iteraotr对象
Iterator it = keys.iterator(); // 用迭代器传给 it
while (it.hasNext()){ //迭代器循环
String key=(String)it.next();//获得键名 要强转
System.out.println(key); //获得key的值
Dog dog=(Dog)dogMap.get(key);//通过key的值给get 去获得他的对象
dog.print(); //dog对象的输出
}
//方式2 foreach
Set keys1= dogMap.keySet(); //还是一样获得set值
for (Object obj:keys1) { //直接传值给obj类型遍历
Dog dog=(Dog)dogMap.get(obj); //用get传入他的key值获取他的对象
dog.print(); //输出
}
泛型集合的应用不同之处及各自的应用场合
相对于list集合来说限制了他范围不用类型转换