-3

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

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

我必须使用 IF-STATMENT 从这个 Array e 比较中检索一些数据,如下面的代码:

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

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

问题是:我无法输入 IF-STATEMENT。我确信这些值是完全相同的。

我不知道该怎么办。

谢谢。

4

5 回答 5

0

利用

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

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

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

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

检查上面链接中的equals方法

于 2013-05-02T03:50:55.510 回答
0

比较字符串时使用 equals()

所以在你的条件下它应该是DeviceType.equals("lamp")

于 2013-05-02T03:49:29.927 回答
0

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

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

==当某物在内存中时确定相等性,.equals()将考虑其价值。

于 2013-05-02T03:49:34.477 回答
0

使用 equals("lamp") 或 equalsIgnoreCase("lamp") 方法来比较两个字符串。

if (DeviceType .equals("lamp"))
 {
   // do something
  }
于 2013-05-02T03:50:32.290 回答
0

尝试这个:

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

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

于 2013-05-02T03:55:37.847 回答