四、集合框架
ArrayList(遍历元素和随机访问的效率比较高)
List{ (List接口存储一组不唯一的,有序插入的数组)
1. Collection{ LinkedList(插入、删除元素的效率比较高)
HashSet
Set{ (Set接口存储一组唯一的,无序插入的对象)
TreeSet
HashMap
2. Map{ (接口存储一组键值对象,提供key 到 value 的映射)
TreeMap
(注意:对Set循环使用迭代器取值 在实体类中不能判断是否重复,放实体类要使用hashCode()和equals(Object obj)方法)
Set set=new HashSet();
set.add("aaaa");
set.add("bbbb");
set.add("cccc");
set.add("aaaa");
Iterator it=set.iterator();//通过迭代器取值,通过for循环输出
while(it.hasNext()){ //hasNext(): 判断是否存在另一个可访问的元素
String str=(String) it.next();//objec所有类的超类 Object next(): 返回要访问的下一个元素
System.out.println(str);
}
(注意:TreeSet输出为有序使用implements Comparable比较进行排序)
Set set = new TreeSet();//使用implements Comparable比较进行排序
set.add(news1);//输出结果有序
set.add(news2);
set.add(news3);
Iterator it = set.iterator();
while (it.hasNext()) {
News news = (News) it.next();
String s =news.getId()+"";
s += news.getTitle();
s += news.getContent();
s += news.getPubdate();
System.out.println(s);
}
(注意:entrySet的使用,使用方法和Set的使用方法相同)
Map map = new HashMap();
map.put("1", "烟台");
map.put("4", "北京");
map.put("3", "上海");
map.put("3", "上海滩");
Set set = map.entrySet();//把key,value都转换成set
Iterator it = set.iterator();
while (it.hasNext()) {
Entry entry = (Entry) it.next();
System.out.print(entry.getKey());
System.out.println(entry.getValue());