如何在处理中从ArrayList获取布尔值

时间:2013-03-28 15:41:28

标签: arrays arraylist processing

我有一个ArrayList,“列表”,其中包含一个值,true。但是,当我写道:

if (list.get(0)==true)

我收到错误“不兼容的操作数类型对象和布尔值”。 ArrayList.get()方法始终返回object吗?如果是这样,我怎样才能获得boolean值?

感谢。

3 个答案:

答案 0 :(得分:5)

如果你的列表总是包含布尔值,我建议你将你的arraylist键入boolean

List<Boolean> list = ArrayList<Boolean> ();

现在你可以做你想做的事了:

if (list.get(0))

有关信息:

if (list.get(0)==true)if (list.get(0))完全相同。

如果你不能使用泛型,你可以施展

if((Boolean) list.get(0))
{
    System.out.println("OK");
}

答案 1 :(得分:2)

是的,ArrayList存储对象,除非您使用泛型,否则它无法知道该类。

所以你有两个选择:泛型或每次“获取”。

铸造:

if ( ((Boolean)list.get(0))==true ) { ... }

使用泛型,将列表声明为:

List<Boolean> list= new ArrayList<>();
list.add(true);

if (list.get(0)) { // list.get(0)==true is unnecesary
...
}

答案 2 :(得分:2)

您可以尝试创建一个var来验证“if”语句是否为true,如下所示:

for(int i = 0; i < aList.size();i++){ match = aList.get(i).equals("Red"); System.out.print(match); }

匹配变量将接收此比较的布尔值。

此致

Otacon。