如何查看一个网站的所有二级域名,建个人网上银行登录入口,企业营销策略有哪些,规划电子商务网站建设方案java教程之Map应该怎么用在自学或者看java教程的时候#xff0c;大家多多少少都存在着这样或者那样的疑惑#xff0c;对于这些中软国际小编一直也在整理#xff0c;今天为大家献上的是关于Map应该怎样去用的一些方法#xff0c;还是跟过去一样#xff0c;在这里#xff0…java教程之Map应该怎么用在自学或者看java教程的时候大家多多少少都存在着这样或者那样的疑惑对于这些中软国际小编一直也在整理今天为大家献上的是关于Map应该怎样去用的一些方法还是跟过去一样在这里小编提供的希望大家把它看成是思路在技术的道路上还是需要不断的探索自行研究才能最终体会到这门语言的伟大与迷人之处。下面言归正传Map与Collection不同Map中保存的是键值对Key值不允许重复而Collection中保存的是单个对象。Map接口中主要的方法有(1)V put(K key,V value)该方法可以将key和value存到Map对象中。如果key已经存在则被覆盖返回被覆盖前的value。如果key不存在则返回null。(2)V get(Object key)该方法可以根据key值返回对应的value。(3)int size()返回Map对象中键值对的数量。(4)Set keySet()将Map对象中的key值取出返回到Set对象中。(5)Collection values()将Map对象中的value值取出返回到Collection对象中。Map是接口无法直接实例化对象所以要使用Map必须通过Map的实现类创建对象。下面介绍Map接口的4个主要实现类。1)HashMapHashMap是Map类的一个常用实现类HashMap根据key值的hashCode和equals方法判断其是否唯一与HashSet中保证元素唯一性的方式相同请参考HashSet章节。如下代码所示package com.etc.chapter14;import java.util.HashMap;import java.util.Set;public class TestHashMap {publicstatic void main(String[] args) {// TODO Auto-generated method stubPlayer player1newPlayer(110-999,Kate);Player player2newPlayer(110-888,Grace);Team team1new Team(China);Team team2new Team(USA);HashMap mapnewHashMap();map.put(player1, team1);map.put(player2, team2);Set setmap.keySet();for(Player p:set){System.out.println(map.get(p).getName());}}}上述代码中首先使用HashMap存储Player和Team之间的映射关系使用put方法将两对键值对存储到了一个HashMap对象中。然后通过Map的keySet方法将Map的key值转换为一个Set对象进一步使用增强for循环根据key值迭代所有value值。运行结果如下ChinaUSA2)TreeMapTreeMap是Map的一个实现类不仅能保证Key值唯一还能根据key值进行排序。TreeMap的key必须实现Comparable接口实现compareTo方法。TreeMap根据compareTo的逻辑对key进行排序。具体方式与TreeSet的排序逻辑相同请参考TreeSet章节。修改key值的类型Player类实现Comparable接口覆盖compareTo方法如下代码所示package com.etc.chapter14;public class Player implementsComparable{privateString id;privateString name;//省略其他代码public intcompareTo(Player arg0) {// TODO Auto-generated method stubreturn this.id.compareTo(arg0.id);}}上述代码中Player类实现了Comparable接口覆盖了compareTo方法方法中根据Player的id值的字典顺序进行比较。使用下面代码测试package com.etc.chapter14;public class TestTreeMap {publicstatic void main(String[] args) {Player player1new Player(110-999,Kate);Player player2newPlayer(110-888,Grace);Team team1new Team(China);Team team2new Team(USA);TreeMap mapnewTreeMap();map.put(player1, team1);map.put(player2, team2);Set setmap.keySet();for(Player p:set){System.out.println(map.get(p).getName());}}}上述代码中将两组键值对存储到了一个TreeMap中运行结果为USAChina因为Player类的compareTo方法根据Player的id属性的字典顺序进行排序所以TreeMap也根据Player的id属性的字典顺序排序。3)HashtableHashtable与Vector类似也是一个“历史悠久”的类。Hashtable是JDK1.0版本中就存在的类。目前Hashtable实现了Map接口。Hashtable的功能可以完全被HashMap替代主要区别在于Hashtable是同步对象而HashMap不是同步的。4)PropertiesProperites类是Hashtable类的子类所以也间接地实现了Map接口。在实际应用中常使用Properties类对属性文件进行处理。该功能需要使用到IO包的APIIO相关知识点请参见IO章节。假设有如下属性文件db.properties:usernamerootpassword123可以使用Properties对象的load方法将属性文件加载到Properties对象中然后调用Properties对象的getProperty方法通过key值获得对应的value值。如下代码所示package com.etc.chapter14;public class TestProperties {public static void main(String[] args) {Properties propsnew Properties();try {props.load(new FileInputStream(newFile(db.properties)));System.out.println(props.getProperty(username));System.out.println(props.getProperty(password));} catch (FileNotFoundException e) {// TODOAuto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODOAuto-generated catch blocke.printStackTrace();}}}运行结果如下root123Map接口的主要实现类有HashMap、TreeMap、Hashtable、Properties。Map中的key值不能重复其中TreeMap的key值不仅不重复而且能根据key值排序。Hashtable类可以完全被HashMap类替代唯一区别在于Hashtable类是同步的。Properties类主要用于处理属性文件。好了这次的内容不知道大家看了以后有没有更加清晰明了一点呢如果没有点击官网看更多关于java教程的详细讲解吧。java教程http://csetc.chinasofti.com/ java教程