爱编程的锦鲤 2021-06-04 20:30 采纳率: 50%
浏览 9
已采纳

关于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嘛,比较的是内容,可是我这个程序里前面那几个判断都不成立啊

  • 写回答

1条回答 默认 最新

  • CSDN专家-sinJack 2021-06-04 20:33
    关注

    只有当两个字符串常量比较时,才是比较值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 请教一下c语言的代码里有一个地方不懂
  • ¥15 opencv 无法读取视频
  • ¥15 用matlab 实现通信仿真
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了