java中如何按输入的顺序遍历一个map和set
来源:互联网 发布:人类学 知乎 编辑:程序博客网 时间:2024/06/03 22:41
今天在使用如下的方式遍历HashMap里面的元素时
1 for (Entry<String, String> entry : hashMap.entrySet()) {2 MessageFormat.format("{0}={1}",entry.getKey(),entry.getValue());3 }
发现得到的元素不是按照之前加入HashMap的顺序输出的,发现是:HashMap散列图、Hashtable散列表是按“有利于随机查找的散列(hash)的顺序”。并非按输入顺序。遍历时只能全部输出,而没有顺序。甚至可以rehash()重新散列,来获得更利于随机存取的内部顺序。
总之,遍历HashMap或Hashtable时不要求顺序输出,即与顺序无关。
1 Map<String, String> paramMap = new HashMap<String, String>();
可以用java.util.LinkedHashMap 就是按加入时的顺序遍历了。
import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap;import java.util.Map; import java.util.Map.Entry; import java.util.Set; import javax.swing.plaf.synth.SynthSeparatorUI; public class TestMap { public static void main(String[] args) { Map<String, String> map=new LinkedHashMap<String, String>(); map.put("1", "a"); map.put("2", "b"); map.put("3", "c"); Set<String> set=map.keySet(); for(String i:set){//方法一 String str=map.get(i); System.out.println(i+","+str); } System.out.println("--------------"); Set<Entry<String, String>> entry=map.entrySet();//方法二 Iterator<Entry<String, String>> it=entry.iterator(); while(it.hasNext()){ Entry<String, String> str=it.next(); System.out.println(str.getKey()+","+str.getValue()); } System.out.println("---------------"); Collection<String> set1= map.values();//方法三 for(String i:set1){ System.out.println(i); } } }
Set<String> set2=new LinkedHashSet<String>();
类似的还有 java.util.LinkedHashSet
import java.util.Collection; import java.util.HashMap; import java.util.HashSet;import java.util.Iterator; import java.util.LinkedHashMap;import java.util.LinkedHashSet;import java.util.Map; import java.util.Map.Entry; import java.util.Set; import javax.swing.plaf.synth.SynthSeparatorUI; public class TestMap { public static void main(String[] args) { Set<String> set2=new LinkedHashSet<String>(); set2.add("aaa"); set2.add("qqq"); set2.add("wes"); for(String s:set2){//遍历方法一 System.out.println(s); } Iterator<String> it= set2.iterator(); System.out.println("-----------------"); while(it.hasNext()){//遍历方法二 System.out.println(it.next()); } } }
阅读全文
0 0
- java中如何按输入的顺序遍历一个map和set
- Java中Map、Set集合的遍历
- Java中Map和Set容器如何存对象的
- Java遍历Map和遍历Set
- Java中遍历一个Map的方法
- Java的set,map容器中如何唯一确定一个元素——hashCode()和equals()
- java中List、Set、Map集合的遍历方法总结
- java中list、set、map的各种遍历方法
- Java集合框架中Set、List、Map的遍历方法
- java中List、Set、Map集合的遍历方法总结
- Java中List、Map、Set的遍历方式
- java中List、Set、Map集合的遍历方法总结
- java中list,set,Map集合的遍历方式
- java中遍历一个Map
- java中遍历一个Map
- JAVA中如何遍历Map
- Java中如何遍历map
- Java 中Map 和 Properties 的遍历
- 【HDU
- POJ 2062 Card Game Cheater
- 2017-10-02(一个水杯引发的思考)
- Android Studio安装genymotion插件并运行
- A quick tour of Torch internals
- java中如何按输入的顺序遍历一个map和set
- Android JNI 通过C/C++调用JAVA方法
- [PAT] 1015. 德才论 (25)
- 关于switch case C语言
- 国庆郑州集训day1 下午:基本算法
- Hibernate中的@Entity注解
- ubuntu软件安装问题
- 【物理分析】2017.10.2杂题[电阻]题解
- A Beginner’s Guide to Recurrent Networks and LSTMs