Java 如何将字符串与哈希映射中的键进行比较
我很难将字符串(Java 如何将字符串与哈希映射中的键进行比较,java,arrays,hashmap,hashtable,Java,Arrays,Hashmap,Hashtable,我很难将字符串(str)与hashmap中的键进行比较。从下面的代码中可以看到,我有多个键。我正在将str与键进行比较,但无法获取该特定键的值。请注意,地图包含硬币 仅当我直接输入字符串如entry.getKey().getKeyOne().toString().contains(“硬币”) String str=“coin”; 对于(Map.Entry:Map.entrySet()){ if(entry.getKey().getKeyOne().toString()包含(str)|| entr
str
)与hashmap中的键进行比较。从下面的代码中可以看到,我有多个键。我正在将str
与键进行比较,但无法获取该特定键的值。请注意,地图包含硬币
仅当我直接输入字符串如entry.getKey().getKeyOne().toString().contains(“硬币”)
String str=“coin”;
对于(Map.Entry:Map.entrySet()){
if(entry.getKey().getKeyOne().toString()包含(str)||
entry.getKey().getKeyTwo().toString().contains(str)){
entry.getValue();
}
}
公共类对{
私有字符串keyOne;
私有字符串键2;
配对(第一串,第二串){
这个。keyOne=1;
这个。keyTwo=2;
}
公共字符串getKeyOne(){
返回键一;
}
公共字符串getKeyTwo(){
返回键2;
}
}
建议:只要您在映射中使用自己的类对
,您必须重写等于()
,并且应该重写hashCode()
您可以使用字符串literal进行示例,因为“coin”位于中,并且所有引用的字符串都相同
在这里运行:
public class Pair {
private String keyOne;
private String keyTwo;
Pair(String one, String two) {
this.keyOne = one;
this.keyTwo = two;
}
public String getKeyOne() {
return keyOne;
}
public String getKeyTwo() {
return keyTwo;
}
public static void main(String[] args) {
Map<Pair, String> map = new HashMap();
map.put(new Pair("coin", "5"), "U");
map.put(new Pair("bill", "100"), "H");
map.put(new Pair("10", "5coin"), "T");
String str = new String("coin");
for (Map.Entry<Pair, String> entry : map.entrySet()) {
if (entry.getKey().getKeyOne().toString().contains(str)
|| entry.getKey().getKeyTwo().toString().contains(str)) {
System.err.println(entry.getValue());
}
}
}
}
公共类对{
私有字符串keyOne;
私有字符串键2;
配对(第一串,第二串){
这个.keyOne=1;
这个.keytoo=2;
}
公共字符串getKeyOne(){
返回键一;
}
公共字符串getKeyTwo(){
返回键2;
}
公共静态void main(字符串[]args){
Map Map=newhashmap();
地图放置(新的一对(“硬币”、“5”)、“U”);
地图放置(新的一对(“比尔”、“100”)、“H”);
地图放置(新的一对(“10”,“5coin”),“T”);
字符串str=新字符串(“硬币”);
对于(Map.Entry:Map.entrySet()){
if(entry.getKey().getKeyOne().toString()包含(str)
||entry.getKey().getKeyTwo().toString().contains(str)){
System.err.println(entry.getValue());
}
}
}
}
以下是简单的示例代码
如果您只需要一个Hashmap
public void findInkeys(String findkey){
HashMap<String, Object> map=new HashMap<>();
//Place your content of MAp Here
//Start
//end
//or you can place your content anywhere else but make sure is is initialized before this
Set<String> keys=map.keySet();
boolean isInKeys=false;
for (String k : keys)
{
if(k.equals(findkey))
{
isInKeys=true;
}
}
System.out.println(isInKeys);
}
如果要比较多个键,请使用下面的代码
public void findInkeys(HashMap<String, String> map,ArrayList<String> keyList){
Set<String> keys=map.keySet();
boolean isInKeys=false;
for (String k : keys)
{
if(keyList.contains(k))
{
isInKeys=true;
}
}
System.out.println(isInKeys);
}
public void findinkey(HashMap映射,ArrayList键列表){
Set keys=map.keySet();
布尔值isInKeys=false;
用于(字符串k:键)
{
if(keyList.contains(k))
{
isInKeys=真;
}
}
系统输出打印项次(isInKeys);
}
什么是对
?试试这个,它在android中,但是如果是你自己的类,你能发布KeyOne和KeyTwo的toString实现吗。如果没有,请添加Andrew前面提到的Pair的代码。你能发布你是如何初始化HashMap的吗?这是HashMap吗?你想要像:entry.getKey()包含(“硬币”)这样的东西吗?你能给我举个例子吗?
public void findInkeys(HashMap<String,Object> map,String findkey){
Set<String> keys=map.keySet();
boolean isInKeys=false;
for (String k : keys)
{
if(k.equals(findkey))
{
isInKeys=true;
}
}
System.out.println(isInKeys);
}
public void findInkeys(HashMap<String, String> map,ArrayList<String> keyList){
Set<String> keys=map.keySet();
boolean isInKeys=false;
for (String k : keys)
{
if(keyList.contains(k))
{
isInKeys=true;
}
}
System.out.println(isInKeys);
}