关于string类的equals的问题
问题描述:
package map; import java.util.*; import java.util.Map.Entry; public class T37 { static Map<String,Set<String>> createDemoMap(){//正向索引 Map<String,Set<String>> source=new HashMap<String,Set<String>>(); Set<String> keywordSet1=new HashSet<String>(); keywordSet1.add("KeyWord1"); keywordSet1.add("KeyWord2"); keywordSet1.add("KeyWord3"); source.put("URL1", keywordSet1); Set<String> keywordSet2=new HashSet<String>(); keywordSet2.add("KeyWord2"); keywordSet2.add("KeyWord4"); source.put("URL2", keywordSet2); Set<String> keywordSet3=new HashSet<String>(); keywordSet3.add("KeyWord3"); keywordSet3.add("KeyWord2"); source.put("URL3", keywordSet3); return source; } void showMap(Map<String,Set<String>> map){ Set<Entry<String, Set<String>>> set=map.entrySet();//获取map中的键值对 Iterator<Entry<String, Set<String>>> iterator=set.iterator(); while (iterator.hasNext()) { Entry<String, Set<String>> entry = iterator.next();//next()表示返回当前元素,并指向下一个元素 System.out.println("key:"+entry.getKey()+"----"+"Values:"+"\n"+entry.getValue()+"\n");//getKey()表示返回键,值同理 } } static Map<String,Set<String>> reverseIndex( Map<String,Set<String>> source){//反向索引 Set<String> keywordSet=new HashSet<String>(); Set<Entry<String, Set<String>>> set=source.entrySet();//获取map中的键值对 Iterator<Entry<String, Set<String>>> iterator=set.iterator(); while (iterator.hasNext()) { Entry<String, Set<String>> entry = iterator.next();//next()表示返回当前元素,并指向下一个元素 keywordSet.addAll(entry.getValue()); } System.out.println(keywordSet); Iterator<String> iter=keywordSet.iterator(); while (iter.hasNext()) { String str = iter.next();//next()表示返回当前元素,并指向下一个元素 if (str.equals("keyWord1")) { Set<String> ur1=new HashSet<String>(); ur1.add("URL1"); source.put("keyWord1", ur1); } else if(str.equals("keyWord2")){ Set<String> ur2=new HashSet<String>(); ur2.add("URL1"); ur2.add("URL2"); ur2.add("URL3"); source.put("keyWord2", ur2); } else if(str.equals("keyWord3")){ Set<String> ur3=new HashSet<String>(); ur3.add("URL1"); ur3.add("URL3"); source.put("keyWord2", ur3); } else { Set<String> ur4=new HashSet<String>(); ur4.add("URL4"); source.put("keyWord4", ur4); } } return source; } public static void main(String[] args) { System.out.println("===========正向索引==========="); T37 x=new T37(); Map<String,Set<String>> source=createDemoMap(); x.showMap(source); System.out.println("===========反向索引==========="); T37 y=new T37(); Map<String,Set<String>> reverseMap=reverseIndex(source); y.showMap(reverseMap); } }
string类型不是本来就重写了equals嘛,比较的是内容,可是我这个程序里前面那几个判断都不成立啊
答
只有当两个字符串常量比较时,才是比较值。