ArrayList的问题<hashmap <string,string>&gt;和IF-STATEMENT </hashmap <string,string>

时间:2013-05-02 03:47:09

标签: java android arraylist hashmap

我有一个带有HashMap的数组列表

deviceDataCollection = new ArrayList<HashMap<String,String>>();

我必须使用IF-STATMENT从此数组e中检索一些数据,如下面的代码所示:

String DeviceType = deviceDataCollection.get(position).get("var").toString();
//it returns a string: lamp 

if (DeviceType == "lamp")
{
       // do something
}

问题是:我无法进入IF-STATEMENT。我确定这些数值完全相同。

我不知道该怎么做。

感谢。

5 个答案:

答案 0 :(得分:0)

比较字符串时使用equals()

因此,在您的条件中,它应该是DeviceType.equals("lamp")

答案 1 :(得分:0)

比较Java(和Android)中的引用类型时,需要使用.equals()方法:

if (DeviceType.equals("lamp"))
{
       // do something
}

==通过内存中的某些内容确定相等性,.equals()将考虑其值。

答案 2 :(得分:0)

使用equals(“lamp”)或equalsIgnoreCase(“lamp”)方法来共同使用两个字符串。

if (DeviceType .equals("lamp"))
 {
   // do something
  }

答案 3 :(得分:0)

使用

    if ("lamp".equals(DeviceType))
    {
             //do something
    }

运算符==,测试两个对象引用变量是否引用对象的完全相同的实例。

方法.equals(),测试两个对象是否相互比较 - 但它们不必是同一对象的完全相同的实例。

http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html

检查上面链接中的equals方法

答案 4 :(得分:0)

试试这个:

if (DeviceType.equals("lamp"))
{
   // do something
}

使用equals函数比较字符串,而不是==。