集合,迭代器遍历集合,嵌套集合
集合的框架图
什么是集合?
集合有两个父接口:collection 和 Map
collection有两个子接口:List 和 Set
List :子接口有两个常用的实现类ArrayList和LinkedList 存储的数据的方式是有序不唯一的
ArrayList其实可以理解为一个可变长度的数组,可以通过索引访问相对应的元素
ArrayList遍历元素和查找指定元素效率比较高
Linkedlist对元素的增删改时效率比较高 而且LinkedList有几个独有的方法,addFrist() addLast() getFrist () getLast() removeFrist() removeLast()
Set :子接口有两个常用的实现类HashSet和TreeSet 存储无序 唯一的数据
Map:有两个常见的实现类 HashMap HashTable 存储键值对的数据集合 一个Key对应一个value值
Iterator :遍历集合的迭代器,只可以向前迭代
collections :是操作集合的一个帮助类,对集合进行排序,查找元素等
遍历嵌套Map集合
public static void main(String[] args) { Map<String,Map<String,Object>> map=new HashMap<String, Map<String, Object>>() ; Map<String,Object> map1=new HashMap<String, Object>(); map1.put("a","1"); map1.put("b","1"); map1.put("c","1"); Map<String,Object> map2=new HashMap<String, Object>(); map2.put("a","1"); map2.put("b","1"); map2.put("c","1"); Map<String,Object> map3=new HashMap<String, Object>(); map3.put("a","1"); map3.put("b","1"); map3.put("c","1"); map.put("1",map1); map.put("2",map2); map.put("3",map3); Set<String> set=map.keySet(); for (String s : set) { System.out.println(s+" "); Map<String,Object> map4=map.get(s); Set<String> set1=map4.keySet(); for (String s1 : set1) { System.out.print(" "+s1+" "+map4.get(s1)); } System.out.println(); } } }
遍历嵌套集合时:由内向外依次给集合添加元素,遍历时:由外向内依次输出
迭代器遍历集合:
public static void main(String[] args) { List<Map<String,Object>> list=new ArrayList<Map<String,Object>>(); Map<String,Object> map=new HashMap<String,Object>(); map.put("1", "a"); map.put("2", "a"); map.put("3", "a"); list.add(map); Iterator it = list.iterator(); while(it.hasNext()){ Map<String,Object> map1=(Map<String, Object>) it.next(); Set<String> set=map1.keySet(); Iterator it1=set.iterator(); while(it1.hasNext()){ String ss=(String)it1.next(); System.out.println(ss+" "+map1.get(ss)); } } } }