首页 > 代码库 > 集合框架

集合框架

集合框架包含的内容

l  java中的集合,位于包java.util

l  Java集合框架分为2大接口:

n  Collection

ListArrayListLinkedList

SetHashSetTreeSet

n  Map

HashMap

TreeMap

l  集合框架的优点?

解决数组的一些不足之处(存储数据类型单一、空间不可变,操作数据比较麻烦、性能低等),

提供了一种标准的体系结构,方便快速高效操作集合数据

    掌握ArrayListLinkedList的使用

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的类(ArrayListLinkedList)共有的方法

l  LinkedList特有的方法:P173页表7-2

                     添加:addFirst()、addLast();

                     删除:removeFirst()、 removeLast();

                     获取:getFirst()、getLast()

l  ArrayListLinkedList的异同点?

n  相同点:

都实现了接口List,用来存储可重复,有序的对象

操作数据(添加、删除、获取数据、判断等)的方法都相同

n  不同点:

存储方式不同:ArrayList和数组相同,在内存中分配连续的空间;而LinkedList采用链表方式存储数据

效率侧重点不同: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

方式1while+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  VectorArrayList的异同点?【P171页对比】

2  HashMapHashtable的异同点?【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

集合框架