当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

List,Set,Map遍历方式 (收集的资源,值得看一下)

发表于: 2014-09-11   作者:百合不是茶   来源:转载   浏览:
摘要: List特点:元素有放入顺序,元素可重复 Map特点:元素按键值对存储,无放入顺序 Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的) List接口有三个实现类:LinkedList,ArrayList,Vector LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身
List特点:元素有放入顺序,元素可重复
Map特点:元素按键值对存储,无放入顺序
Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)
List接口有三个实现类:LinkedList,ArrayList,Vector
LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。链表增删快,查找慢
ArrayList和Vector的区别:ArrayList是非线程安全的,效率高;Vector是基于线程安全的,效率低
Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet
SortedSet接口有一个实现类:TreeSet(底层由平衡二叉树实现)
Query接口有一个实现类:LinkList
Map接口有三个实现类:HashMap,HashTable,LinkeHashMap
  HashMap非线程安全,高效,支持null;HashTable线程安全,低效,不支持null
SortedMap有一个实现类:TreeMap
其实最主要的是,list是用来处理序列的,而set是用来处理集的。Map是知道的,存储的是键值对

  

 

 

 

List遍历

   

1) List

  List list = new ArrayList();
  list.add(1);
  list.add(2);
  list.add(4);
  list.add(3);

  Iterator iterator = list.iterator();
  System.out.println("------方法一-------");
  while (iterator.hasNext()) {
   int i = Integer.parseInt(iterator.next().toString());
   System.out.println(i);
  }

  System.out.println("------方法二-------");
  for (Iterator iter = list.iterator(); iter.hasNext();) {
   int i = Integer.parseInt(iter.next().toString());
   System.out.println(i);
  }

  System.out.println("------方法三-------");
  for (Object obj : list) {
   System.out.println(obj);
  }

  System.out.println("------方法四-------");
  for (int i = 0; i < list.size(); i++) {
   int k = list.get(i);
   System.out.println(k);
  }

 

 

Set遍历

  

  Set set = new HashSet();
  set.add("123");
  set.add("abc");

  System.out.println("方法一");
  // 方法一:使用迭代器
  for(Iterator i = set.iterator(); i.hasNext(); ) {
      System.out.println(i.next());
  }
  System.out.println("方法二");

  // 方法二:使用 JDK 5 新增的 foreach 循环,只有数组和实现了 Iterable 接口的类才能这样写。
  // 冒号左边是一个局部变量,表示这个 set 中被迭代出来的元素,右边是一个数组或者是实现了 Iterable
  // 接口的类。
  for(String str : set) {
      System.out.println(str);
  }

 

 

Map遍历(1)

Map tempMap = new HashMap();
  tempMap.put("a", 1);
  tempMap.put("b", 2);
  tempMap.put("c", 3);
  // JDK1.4中
  // 遍历方法一 hashmap entrySet() 遍历
  System.out.println("方法一");
  Iterator it = tempMap.entrySet().iterator();
  while (it.hasNext()) {
   Map.Entry entry = (Map.Entry) it.next();
   Object key = entry.getKey();
   Object value = entry.getValue();
   System.out.println("key=" + key + " value=" + value);
  }
  System.out.println("");
  // JDK1.5中,应用新特性For-Each循环
  // 遍历方法二
  System.out.println("方法二");
  for (Map.Entry entry : tempMap.entrySet()) {
   String key = entry.getKey();
   int value = entry.getValue();
   System.out.println("key=" + key + " value=" + value);
  }
  System.out.println(""); // 遍历方法三 hashmap keySet() 遍历
  System.out.println("方法三");
  for (Iterator i = tempMap.keySet().iterator(); i.hasNext();) {
   Object obj = i.next();
   System.out.println(obj);// 循环输出key
  }
  for (Iterator i = tempMap.values().iterator(); i.hasNext();) {
   Object obj = i.next();
   System.out.println(obj);// 循环输出value
  }
  for (Iterator i = tempMap.keySet().iterator(); i.hasNext();) {
   Object obj = i.next();
   System.out.println("key=" + obj + " value=" + tempMap.get(obj));// 循环输出key 和 value
  }
  System.out.println(""); // 遍历方法四 treemap keySet()遍历
  System.out.println("方法四");
  for (Object o : tempMap.keySet()) {
   System.out.println("key=" + o + " value=" + tempMap.get(o));
  }

 

 

Map遍历(2)

public static void main(String[] args) { 
  Map<String, String> map = new HashMap<String, String>(); 
  map.put("1", "value1"); 
  map.put("2", "value2"); 
  map.put("3", "value3"); 
  
  //第一种:普遍使用,二次取值 
  System.out.println("通过Map.keySet遍历key和value:"); 
  for (String key : map.keySet()) { 
   System.out.println("key= "+ key + " and value= " + map.get(key)); 
  } 
  
  //第二种 
  System.out.println("通过Map.entrySet使用iterator遍历key和value:"); 
  Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); 
  while (it.hasNext()) { 
   Map.Entry<String, String> entry = it.next(); 
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); 
  } 
  
  //第三种:推荐,尤其是容量大时 
  System.out.println("通过Map.entrySet遍历key和value"); 
  for (Map.Entry<String, String> entry : map.entrySet()) { 
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); 
  } 

  //第四种 
  System.out.println("通过Map.values()遍历所有的value,但不能遍历key"); 
  for (String v : map.values()) { 
   System.out.println("value= " + v); 
  }

 

 

List,Set,Map遍历方式 (收集的资源,值得看一下)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
大的分类: 1.Collection:一组各自独立的元素,即其内的每个位置仅持有一个元素。 List:以元素安插
大的分类: 1.Collection:一组各自独立的元素,即其内的每个位置仅持有一个元素。 List:以元素安插
一、集合类简介 数组是很常用的一种的数据结构,我们用它可以满足很多的功能,但是,有时我们会遇到
集合结构图: List---可以容纳重复对象 ArrayList-----数组列表----默认大小10,扩容1.5倍---对数组
java中常见的存储数据的格式 1、队列的引入:当一讲到存储数据,或许第一映像是用数组存储数据,因
list,set,map,数组间的相互转换 1.list转set Java代码 Set set = new HashSet(new ArrayList()); 2.
一:Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的
list,set,map,数组间的相互转换 1.list转set Java代码 Set set = new HashSet(new ArrayList()); 2.
原文:spring如何注入List,Set,Map对象 代码下载地址:http://www.zuidaima.com/share/155046325553
import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; public class
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号