首页 > 代码库 > 集合框架
集合框架
集合框架包含的内容
l java中的集合,位于包java.util
l Java集合框架分为2大接口:
n Collection
u List(ArrayList、LinkedList)
u Set(HashSet、TreeSet)
n Map
u HashMap
u TreeMap
l 集合框架的优点?
解决数组的一些不足之处(存储数据类型单一、空间不可变,操作数据比较麻烦、性能低等),
提供了一种标准的体系结构,方便快速高效操作集合数据
掌握ArrayList和LinkedList的使用
l 常用方法【P170页的表7-1】
u 添加: add() 该方法重载2次
ü boolean add(Object e);//保存任意数据类型的元素
ü void add(int index,Object e) ;//在指定的下标处,添加任意数据类型的元素
u 删除:remove() 该方法重载2次
ü boolean remove(Object e);根据元素的值,删除
ü Object remove(int index);根据下标位置,删除
u 获取元素:get(int index)
u 元素个数:size()
u 判断某个元素是否存在:
ü boolean contains(Object e)
以上方法,是实现了接口List的类(ArrayList和LinkedList)共有的方法
l LinkedList特有的方法:P173页表7-2
添加:addFirst()、addLast();
删除:removeFirst()、 removeLast();
获取:getFirst()、getLast()
l ArrayList和LinkedList的异同点?
n 相同点:
u 都实现了接口List,用来存储可重复,有序的对象
u 操作数据(添加、删除、获取数据、判断等)的方法都相同
n 不同点:
u 存储方式不同:ArrayList和数组相同,在内存中分配连续的空间;而LinkedList采用链表方式存储数据
u 效率侧重点不同:ArrayList在遍历和随机访问元素的效率较高;LinkedList在插入和删除数据效率较高
掌握HashMap的使用
l 位于包java.util,实现接口Map
l 使用前,都要创建对象
l 常用的方法:【P175页表7-3】
n 添加:put(Object key,Object value)
n 删除:remove(Object key)
n 获取值:get(Object key)
n 判断集合中是否存在某个键:containsKey(Object key)
n 集合中元素的个数:size()
n 键的集合: keySet()
n 值的集合:values();
n 循环输出集合中的元素?——不能使用for循环
u while+Iterator迭代器一起使用
u foreach
掌握Iterator的使用
循环输出HashMap集合中的key(多个)和value?
方式1:while+Iterator(参考代码示例5)
Set 变量名 = HashMap类的对象. keySet();//key的集合
Iterator 迭代器对象 = 变量名. iterator();
while(迭代器对象.hasNext()){//判断集合中是否有元素
//得到一个key
Object key = HashMap类的对象.next();
//得到该key对应的value
Object value =http://www.mamicode.com/ HashMap类的对象.get(key);
……………..编写其他代码
}
方式2:使用foreach循环(for循环的增强版)
语法:
for(数据类型变量名:数组名或集合名){
}
ü 单独输出键的集合[keySet()方法]
for(Object key : HashMap对象.keySet()){
System.out.println(key);//每个键key的值
}
ü 单独输出值的集合(values()方法)
for(Object v : HashMap对象.values()){
System.out.println(v);//每个键value的值
}
ü 通过key,输出对应的value?
for(Object key:HashMap对象.keySet()){
Object value=http://www.mamicode.com/HashMap对象.get(key);
……….编写其他代码
}
2 Vector和ArrayList的异同点?【P171页对比】
2 HashMap和Hashtable的异同点?【P175页对比】
掌握泛型集合的使用
ü 泛型的优点:
使用泛型,在定义集合时指定了具体的数据类型,从而保证向集合中添加元素确保类型是统一和安全的,提取和遍历集合中的元素时,不需要再进行额外的类型转换,一定程度上提高了程序的性能
ü 从jdk1.5开始,集合框架都有相应的泛型版本
ü 常用的泛型集合
n ArrayList<数据类型>、LinkedList<数据类型>、Vector<数据类型>
n HashMap<数据类型,数据类型>、Hashtable<数据类型,数据类型>
n <数据类型>指的包装类:
u int——>Integer char——>Character
u float——>Float double——>Double
u boolean——>Boolean short——>Short
u byte——>Byte long——>Long
集合框架