Java集合框架提供了一套性能优良、使用方便的接口和类,他们位于java.util包中。
Collection接口 主要有List、Set等实现类,Map接口主要有HashMap、TreeMap等实现类。Collections提供了对集合进行排序、遍历等多种算法实现。
以下为Set集合的使用:存储唯一的,无序的对象。派生类HashSet。
Set set=new HashSet(); set.add("周五"); set.add(199); set.add(23.55); set.add(100f);
使用foreach方法进行输出:
for (Object object : set) { System.out.println(object); }
应该注意的是,set接口没有get方法,所以不能用for循环遍历输出。
使用迭代器取值
Iterator its = set.iterator(); while (its.hasNext()) { //进入循环输出集合中的元素 Object obj = its.next(); System.out.println(obj); }
程序运行结果为:
23.55 周五 100.0 199 ------------------- 23.55 周五 100.0 199
TreeSet实现排序功能
Set set=new TreeSet(); set.add("2ee"); set.add("jsk"); set.add("sda"); set.add("wql"); set.add("sdj"); for (Object object : set) { System.out.println(object); }
Map接口
Map接口存储一组键值对象,提供key到value的映射。
示例需求说明:
创建一个诗的集合,迭代出每首诗的名称,作者,内容,
分析:
创建“诗”类Poem,属性包括:名称、作者、内容
使用HashMap存储诗的信息,将诗的名称作为key,诗内容作为value。
解决:
首先创建Poem类,类中包含私有属性:名称、作者、内容,并生成对应的get、set方法,生成全参构造函数和无参构造函数。
在测试类中对对象数组进行赋值:
Poem poem1=new Poem("春晓", "孟浩然","春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。"); Poem poem2=new Poem("鹿柴", "王维","空山不见人,但闻人语响。返影入深林,复照青苔上。"); Poem poem3=new Poem("相思", "王维","红豆生南国,春来发几枝。愿君多采撷,此物最相思。");
然后创建Map下的HashMap函数,
Map<String, Poem> map=new HashMap<String, Poem>();
然后使用map.put添加数据:
map.put("春晓", poem1); map.put("鹿柴", poem2); map.put("相思", poem3);
最后使用迭代器进行输出:
Set keys=map.keySet(); Iterator its = keys.iterator(); while(its.hasNext()){ String key=(String) its.next(); Poem poem=map.get(key); System.out.println(poem.getName()+poem.getAuthor()+poem.getWenzhang()); }
程序运行结果为:
相思
王维
红豆生南国,春来发几枝。愿君多采撷,此物最相思。
春晓
孟浩然
春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。
鹿柴
王维
空山不见人,但闻人语响。返影入深林,复照青苔上。
LinedList操作数据
插入、删除操作频繁时,可使用LinkedList来提高效率。
以下为常用的操作方法:
void addFirst(Object o) 在列表的首部添加元素
void addLast(Object o) 在列表的末尾添加元素
Object getFirst() 返回列表中的第一个元素
Object getLast() 返回列表中的最后一个元素
Object removeFirst() 删除并返回列表中的第一个元素
Object removeLast() 删除并返回列表中的最后一个元素
Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作。最常用的实现类是HashMap。
以下为常用的操作方法
Object put(Object key, Object val) 以“键-值对”的方式进行存储
Object get (Object key) 根据键返回相关联的值,如果不存在指定的键,返回null
Object remove (Object key) 删除由指定的键映射的“键-值对”
int size() 返回元素个数
Set keySet () 返回键的集合
Collection values () 返回值的集合
boolean containsKey (Object key) 如果存在由指定的键映射的“键-值对”,返回true
Hashtable和HashMap的异同
Hashtable继承Dictionary类,HashMap实现Map接口。
Hashtable线程安全,HashMap线程非安全
Hashtable不允许null值,HashMap允许null值。