如何在List中添加整数元素?

时间:2015-01-30 14:03:39

标签: java arrays list java-7

我有一个作为查询结果生成的整数列表,我想在那个数组中添加那些元素是否可能?

List<Objects[]> list = EnquiryService.getQuantityById(60);

我将列表作为list=[4,5,6]

如何在列表中添加元素?

3 个答案:

答案 0 :(得分:0)

通过将元素强制转换为int来添加元素。确保您的数组只包含Integer对象。你可以使用(int)object来自java 7

BigDecimal sum = new BigDecimal(0);
for(Object o:list){
   sum.add((BigDecimal)o);
}
int sumation=sum.intValueExact();

答案 1 :(得分:0)

尝试使用Java 8流来汇总List<Object[]>

BinaryOperator<Integer> integerAdder = (i, j) -> i + j;

Function<Object[], Integer> sumListOfObjects = oa -> Arrays.asList(oa)
        .stream()
        .map(o -> (Integer) o)
        .reduce(0, integerAdder);

List<Object[]> listOfObjectArrays = Arrays.asList(new Integer[]{1, 2, 3},
                                                  new Integer[]{4, 5, 6});

int total = listOfObjectArrays
        .stream()
        .map(sumListOfObjects)
        .reduce(0, integerAdder);

输出:

21

答案 2 :(得分:0)

我建议创建一个&#34;持有者&#34;为您的数据。

List<DataHolder> list = DataHolder.getFromListOfLists(EnquiryService.getQuantityById(60));

然后,您可以在每个持有人上致电getTotal()

public static class DataHolder {

    Object [] list;

    private int total;

    public DataHolder(Object[] list) {
        this.list = list;
        this.total = 0;

        //Sum the totals
        for (Object o:list) 
            if (o != null)
                total += (Integer)o;
    }

    //Total getter
    public int getTotal() {
        return this.total;
    }

    public static List<DataHolder> getFromListOfLists(List<Object[]> lists) {
        List<DataHolder> holders = new ArrayList<>();
        for (Object[] list:lists) {
            holders.add(new DataHolder(list));
        }
        return holders;
    }
}

打印出总数:

for (DataHolder holder:lists)
    System.out.println(holder.getTotal());