一、Set集合映射:
Set是一个接口,实现类有HashSet,LinkedHashSet,TreeSet
特点:加入的对象不能重复,且没有固定的顺序。若重复则跳过。
Set set = newHashSet(); set.add(50); set.add(100.0); set.add(50); set.add(10.0); for (Object o : set) { System.out.println(o); }
1.HashSet:
特点:内部使用Hash算法保存对象,存取速度快。
2. LinkedHashSet
特点: HashSet的子类,内部使用链表数据结构保存数据,有固定顺序,即add时的顺序。
3. TreeSet
特点:会排序保存的对象,被保存对象需实现comparable接口。
二、List集合映射
List也是一个接口,实现类有ArrayList与LinkedList
特点:对象可以重复,记录添加的先后顺序。(需要在数据库中加个字段来保存该值)
1.ArrayList
特点:内部使用数组来实现集合功能,对于随机读取添加的对象效率好,但是添加,移除时效率较低。
方法:size();get();toArray()将对象转化为对象数组
List<Integer>list = new ArrayList<Integer>(); list.add(50); list.add(200); list.add(100); list.add(20); for (Integer i : list) { System.out.println(i); }
2.LinkedList
特点:内部使用链表的形式保存数据,插入移除对象时效率较高。
方法:addFirst();addLast(); getFirst(); getLast(); removeFirst(); removeLast()
LinkedList<String>list = new LinkedList<String>(); list.add("张三); list.addFirst("李四"); list.removeFirst(); list.addLast("赵五");
三:Bag集合映射
Hibernate中可以映射的集合类型,jdk中未提供。
特点:对象可以重复,不记录添加的先后顺序。修改时先删除所有的记录,在添加修改的记录。更新效率较低。
四:IdBag映射
特点:Bag集合映射的扩展,为每个对象指定id,可直接更新数据,提高了效率。
五:Map
Map对象保存key/value形式的一组对象,都是object类型,一一对应,key不重复。
实现类有:HashMap,LinkedHashMap,TreeMap
Map<String, String> users= new HashMap<String,String>(); users.put("姓名","张三"); users.put("电话","888888"); users.put("住址","山东省"); Set<String>keys = users.keySet();//获取所有的key值集合 for(String key : keys) { System.out.println(key+ "---->" + users.get(key)); }
1. HashMap
特点:是基于哈希表的MAP接口的实现,允许null作为key或value值,不记录顺序,不保证线程安全,查找效率较高。
方法:put();keySet();()获取所有的key值集合。
2. LinkedHashMap
特点:HashMap的子类,内部使用链表的形式保存数据,有固定的顺序。
3. TreeMap
特点:实现了Map和SortedMap接口,内部使用红黑树算法来排序,还可以自定义方法。(加入的是String对象,默认依key值字典顺序排序)
方法:firstKey(); lastKey(); headMap(); tailMap();
注:本文参考《Hibernate开发与实战》 刘伟 张利国 电子工业出版社 一书