黑马程序员---------Java基础知识:Map集合操作
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
* 题目:将Map集合内的KEY变成key+(int)vaule
* ①将map集合的key值转变为key+(int)value,并输出转变后的map
②在第①步的基础上(map已经是新map了),删除map中50<key+(int)value<150的元素,并输出删除数据后的map
*
* Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "90");
map.put(2, "80");
map.put(3, "70");
map.put(4, "60");
map.put(5, "50");
map.put(6, "40");
map.put(7, "30");
map.put(8, "20");
map.put(9, "10");
*
* 分析:源集合当中,MAP的vaule是STRING类型,将将Vaule转换为int类型,并KAY =Kay+vaule
* 删除不符合要求的数据
*
* */
import java.util.*;
public class Test28 {public static void main(String[] args) {
Map<Integer, String> map = getMap();//获取原集合
Map<Integer, String> map1 =getMap1(map);//获取Key变后的 值
getMap2(map1);
}
public static Map<Integer, String> getMap()
{
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "90");
map.put(2, "80");
map.put(3, "70");
map.put(4, "60");
map.put(5, "50");
map.put(6, "40");
map.put(7, "30");
map.put(8, "20");
map.put(9, "10");
System.out.println("初始化集合");
show(map);
return map;
}
public static Map<Integer, String> getMap1(Map<Integer, String> map)
{
Map<Integer, String> map1 = new TreeMap<Integer, String>();//定义一个新的map
//将MAP中内容转换
Set<Integer> keyset =map.keySet();//将KEY取出来
Iterator<Integer> it = keyset.iterator();//获取迭代器
while(it.hasNext())
{
Integer key1 =it.next();//获取键
String vaule1 =map.get(key1);//获取当前值
map1.put(key1+Integer.parseInt(vaule1),vaule1);
}
System.out.println("键改变后的结果");
show(map1);
return map1;
}
public static void show(Map<Integer, String> map)//传入一个MAP集合,打印出来
{
Set<Integer> key =map.keySet();
Iterator<Integer> itt =key.iterator();
while(itt.hasNext())
{
Integer key1 =itt.next();
String vaule = map.get(key1);
System.out.println("key="+key1+",vaule="+vaule);
}
}
public static void getMap2(Map<Integer, String> map1)//获取比较后的集合?????
{
Map<Integer, String> map2 =map1;
Set<Integer> key =map2.keySet();//获取键序列
Iterator<Integer> it =key.iterator();//迭代器
while(it.hasNext())//判断
{
Integer key1 =it.next();//获取键
if ((key1>50)&&(key1<150))//比较键
//map2.remove(key1);//为什么不能使用?这一句报错,没有结果,这是因为在迭代器下不能直接对集合进行删除。
it.remove();//根据键删除
}
System.out.println("判断后的结果");
show(map2);
}
}