java语言基础--map
map 接口

map中的元素都是以键-值得形式存在的。
import java.util.Collection; import java.util.HashMap; import java.util.Map; public class MapTest01 { @SuppressWarnings("unlikely-arg-type") public static void main(String[] args) { Map<Integer,String> map = new HashMap<>(); String s1 = map.put(1001, "luffy"); map.put(1002, "Zoro"); String s2 = map.put(1001,"loben"); System.out.println(map); //{1001=loben, 1002=Zoro} System.out.println(s1); //null System.out.println(s2); //loben //当键一样时,后面的值会替换掉前面的值 System.out.println(map.get(1002)); //Zoro System.out.println(map.containsKey(1001)); //true System.out.println(map.containsValue("Zoro")); //true int size = map.size(); System.out.println(size); //2 Collection<String> values = map.values(); System.out.println(values); //[loben, Zoro] String string = map.remove(1002); System.out.println(string); //Zoro } }
注:当键一样时,后者代替前者!
map的遍历方式:
方式一:
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class MapTest02 { public static void main(String[] args) { Map<Integer,String> map = new HashMap<>(); map.put(1001, "路飞"); map.put(1002, "索隆"); map.put(1003, "娜美"); map.put(1004, "乌索普"); map.put(1005, "山治"); map.put(1006, "乔巴"); map.put(1007, "罗宾"); map.put(1008, "弗兰奇"); map.put(1009,"布鲁克"); map.put(10010,"甚平"); //set的值也是不能重复的;set的add方法的底层其实就是map的push方法。 Set<Integer> set = map.keySet(); Iterator<Integer> iter = set.iterator(); //获取key之后,就可以获取相应的value; while(iter.hasNext()) { Integer next = iter.next(); System.out.println(next+map.get(next)); } for(Integer key :map.keySet()) { System.out.println(key+map.get(key)); } } }
方式二:
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class MapTest03 { public static void main(String[] args) { Map<Integer,String> map = new HashMap<>(); map.put(1001, "路飞"); map.put(1002, "索隆"); map.put(1003, "娜美"); map.put(1004, "乌索普"); map.put(1005, "山治"); map.put(1006, "乔巴"); map.put(1007, "罗宾"); map.put(1008, "弗兰奇"); map.put(1009,"布鲁克"); map.put(10010,"甚平"); Set<Entry<Integer,String>> entrySet = map.entrySet(); Iterator<Entry<Integer, String>> iter = entrySet.iterator(); while(iter.hasNext()) { Entry<Integer, String> entry = iter.next(); System.out.println(entry.getKey()+":"+entry.getValue()); } for(Map.Entry<Integer, String> en : map.entrySet()) { System.out.println(en.getKey()+":"+en.getValue()); } } }
LinkedHashMap:
存取顺序一致;
TreeMap:
对key进行排序;
HashTable:
HashTable是在jdk1.1开始引进的;HashTable是线程安全的,里面的值不能为null;
HashMap是在jdk1.2引进的;线程相对不安全,效率高;key和value是可以是null;
浙公网安备 33010602011771号