对象列表。使用整数条目的操作

时间:2012-01-18 12:10:11

标签: java list object autoboxing

List可能包含Integers和String值。在这种情况下,我应该创建对象列表吗?对不起?

List<Object> list = new ArrayList<Object>();

如何使用List的Integer条目执行简单的算术运算?

list.add(1);
list.add("ok");
list.add(2);
Integer a = list.get(0) - list.get(2); // does not work

3 个答案:

答案 0 :(得分:5)

您需要将Object强制转换为int,因为-上没有定义Object运算符,Java也不会自动取消这些运算符。

Integer a = ((Integer)list.get(0)) - ((Integer)list.get(2));

答案 1 :(得分:5)

这是因为最终list.get(0);Object。如果你想对它进行算术运算,你必须抛出它:

Integer a = (Integer) list.get(0) - (Integer) list.get(2);

答案 2 :(得分:1)

说实话,这是一个非常糟糕的设计。如果你想迭代那个列表怎么办?您必须手动检查元素是字符串还是整数。出于某种原因引入Java的泛型。

你不能制作2个列表:一个用于字符串,一个用于整数。或者至少使用一个列表,而不是使用字符串使用(通常未使用的)整数值?