您的位置:首页 > 编程语言 > Java开发

java学习(2)Map类的遍历

2016-10-31 20:18 239 查看
1.      Map类的遍历总共分为三种(有的分成四种,但我觉得就三种)

1.1.       按照key

1.2.       按照value(但是此种不能遍历key,只能遍历value)

1.3.       利用Map.Entry

2.          下面是代码:

首先是main函数:

public static void main(String[] args) {
// TODO Auto-generated method stub

Map<Integer,String> map = new HashMap<Integer,String>();
//Map<Integer,String> map = new LinkedHashMap<Integer,String>();
//Map<Integer,String> map = new TreeMap<Integer,String>();
map.put(1, "one");
map.put(5, "five");
map.put(3, "three");
map.put(2, "two");
traverseByKey(map);
traverseByValue(map);
traverseByEntry(map);
}


按照key遍历:(其中没有用泛型,因为这样更具有普适性,后面的排序就是直接用的这里的遍历方法,很方便)

public static void traverseByKey(Map map)
{
Set keySet = map.keySet();
Iterator iter = keySet.iterator();
System.out.println("traverseByKey: ");
while(iter.hasNext())
{
//Integer key = (Integer)iter.next();
//get里面会直接发生强转。
Object o = iter.next();
System.out.println(o+": "+map.get(o));
}
System.out.println("traverseByKey: end");
}

按照Value:

//按照Value,但是不能遍历key
public static void traverseByValue(Map<Integer,String> map)
{
//不能用向下转型,向下转型只有在你知道他本来是什么类型的情况下才会成功。
Collection<String> values = (Collection<String>) map.values();
System.out.println("traverseByValue: ");
for(String value: values)
{
System.out.println("value: "+value);
}

System.out.println("traverseByValue: end");
}

按照Entry:

//按照Entry
public static void traverseByEntry(Map<Integer,String> map)
{
System.out.println("traverseByEntry: ");
Set<Map.Entry<Integer, String>> entrySet = map.entrySet();
for(Map.Entry<Integer, String> entry: entrySet)
{
System.out.println(entry.getKey()+": "+entry.getValue());
}
System.out.println("traverseByEntry: end");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java