得到 java map 的键 有哪些方法
map.keySet()会自动排序key的值,我不想让你自动排序怎么办?就是想按照原来put()的顺序输出,请各位大侠帮帮小弟?可是我遇到了必须用map但是还要有以前的顺...
map.keySet() 会自动排序 key 的 值,
我不想让你自动排序怎么办?
就是想按照原来 put() 的 顺序输出,
请各位大侠帮帮小弟?
可是我遇到了必须用 map 但是还要有 以前的顺序,应该怎么办 展开
我不想让你自动排序怎么办?
就是想按照原来 put() 的 顺序输出,
请各位大侠帮帮小弟?
可是我遇到了必须用 map 但是还要有 以前的顺序,应该怎么办 展开
展开全部
public static void main(String[] args) {
Map map = new HashMap();
map.put("1", "aaaa");
map.put("2", "bbbb");
map.put("3", "cccc");
map.put("4", "dddd");
Iterator keyIteratorOfMap = map.keySet().iterator();
while (keyIteratorOfMap.hasNext()) {
Object key = keyIteratorOfMap.next();
System.out.println("map key【" + key.toString() + "】map value【"+ map.get(key)+"】");
}
/********************************************/
TreeMap treeMap = new TreeMap();
treeMap.put("1", "aaaa");
treeMap.put("2", "bbbb");
treeMap.put("3", "cccc");
treeMap.put("4", "dddd");
Iterator keyIteratorOfTreeMap = treeMap.keySet().iterator();
while (keyIteratorOfTreeMap.hasNext()) {
Object key = keyIteratorOfTreeMap.next();
System.out.println("treeMap key【" + key.toString() + "】value:"+ treeMap.get(key)+"】");
}
}
==========================================
将上面代码执行以下试试你就明白了。
HashMap它是没用顺序可言的,而TreeMap是有顺序的。 不过TreeMap的效率是没有HashMap的效率高的。如果你不需要数据的存放顺序建议使用HashMap,如果需要用到数据的顺序则考虑TreeMap。原理可以看一下哈希码值方面的东西。
Map map = new HashMap();
map.put("1", "aaaa");
map.put("2", "bbbb");
map.put("3", "cccc");
map.put("4", "dddd");
Iterator keyIteratorOfMap = map.keySet().iterator();
while (keyIteratorOfMap.hasNext()) {
Object key = keyIteratorOfMap.next();
System.out.println("map key【" + key.toString() + "】map value【"+ map.get(key)+"】");
}
/********************************************/
TreeMap treeMap = new TreeMap();
treeMap.put("1", "aaaa");
treeMap.put("2", "bbbb");
treeMap.put("3", "cccc");
treeMap.put("4", "dddd");
Iterator keyIteratorOfTreeMap = treeMap.keySet().iterator();
while (keyIteratorOfTreeMap.hasNext()) {
Object key = keyIteratorOfTreeMap.next();
System.out.println("treeMap key【" + key.toString() + "】value:"+ treeMap.get(key)+"】");
}
}
==========================================
将上面代码执行以下试试你就明白了。
HashMap它是没用顺序可言的,而TreeMap是有顺序的。 不过TreeMap的效率是没有HashMap的效率高的。如果你不需要数据的存放顺序建议使用HashMap,如果需要用到数据的顺序则考虑TreeMap。原理可以看一下哈希码值方面的东西。
展开全部
这个基本不可能。
在map中有自己的一套排序规则,具体根据什么排序不记得了。
也就是说,当你把数据put到map中的时候,顺序已经排好了。
除非是你put进去的时候的顺序刚好与map的排序规则吻合。
或者自己再写个排序。
http://zhidao.baidu.com/question/79154678.html 这个应该跟你问的差不多。
------------------------------
如果必须要这样的话,
那么put的时候对key做可以排序的处理。
比如说,在key的值后面加上编号,
然后在读的时候自己写个方法排序。
再根据排好的顺序去取value。
在map中有自己的一套排序规则,具体根据什么排序不记得了。
也就是说,当你把数据put到map中的时候,顺序已经排好了。
除非是你put进去的时候的顺序刚好与map的排序规则吻合。
或者自己再写个排序。
http://zhidao.baidu.com/question/79154678.html 这个应该跟你问的差不多。
------------------------------
如果必须要这样的话,
那么put的时候对key做可以排序的处理。
比如说,在key的值后面加上编号,
然后在读的时候自己写个方法排序。
再根据排好的顺序去取value。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Java遍历Map的两种实现方法:
1.根据map的keyset()方法来获取key的set集合,然后遍历map取得value的值
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class HashMapTest2
{
public static void main(String[] args)
{
HashMap map = new HashMap();//新建一个map集合
map.put("a","aaaa");
map.put("b","bbbb");
map.put("c","cccc");
map.put("d","dddd");
Set set = map.keySet();//得到所有map里面key的集合
for(Iterator iter = set.iterator(); iter.hasNext();)//遍历
{
String key = (String)iter.next();
String value = (String)map.get(key);
System.out.println(key+"===="+value);
}
}
}
2.第二种方式是使用Map.Entry来获取:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class HashMapTest4
{
public static void main(String[] args)
{
HashMap map = new HashMap();//新建一个map集合
map.put("a","aa");
map.put("b","bb");
map.put("c","cc");
map.put("d","dd");
Set set = map.entrySet();
for(Iterator iter = set.iterator(); iter.hasNext();)
{
Map.Entry entry = (Map.Entry)iter.next();
String key = (String)entry.getKey();
String value = (String)entry.getValue();
System.out.println(key +" :" + value);
}
}
}
1.根据map的keyset()方法来获取key的set集合,然后遍历map取得value的值
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class HashMapTest2
{
public static void main(String[] args)
{
HashMap map = new HashMap();//新建一个map集合
map.put("a","aaaa");
map.put("b","bbbb");
map.put("c","cccc");
map.put("d","dddd");
Set set = map.keySet();//得到所有map里面key的集合
for(Iterator iter = set.iterator(); iter.hasNext();)//遍历
{
String key = (String)iter.next();
String value = (String)map.get(key);
System.out.println(key+"===="+value);
}
}
}
2.第二种方式是使用Map.Entry来获取:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class HashMapTest4
{
public static void main(String[] args)
{
HashMap map = new HashMap();//新建一个map集合
map.put("a","aa");
map.put("b","bb");
map.put("c","cc");
map.put("d","dd");
Set set = map.entrySet();
for(Iterator iter = set.iterator(); iter.hasNext();)
{
Map.Entry entry = (Map.Entry)iter.next();
String key = (String)entry.getKey();
String value = (String)entry.getValue();
System.out.println(key +" :" + value);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Map是不能保证顺序的,内部有一套自己的排序机制,已达到快速检索的目的。而其实现类排序机制也是不同的,如HashMap是通过Hash值排序的。
如果你想要按以前的顺序只能采用List或者其他的顺序性结构
如果你想要按以前的顺序只能采用List或者其他的顺序性结构
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你存的时候把Key放在数组或者ArrayList里面
比如ArrayList al = new ArrayList();
map.put(k1,v1);
al.add(k1);
................
for(xx : al)
{
map.get(xx);
}
这样取肯定是按你放的顺序取得
比如ArrayList al = new ArrayList();
map.put(k1,v1);
al.add(k1);
................
for(xx : al)
{
map.get(xx);
}
这样取肯定是按你放的顺序取得
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询