首页 > 解决方案 > 遍历数组列表并存储它的内容

问题描述

我正在迭代以这种方式出现的arraylist

   elamentData=Object[10]
      [0]= Object[2]
        [0]="AAA"
        [1]="111"
      [1] = Object[2]   
         [0]="BBB"
         [1]="222" 

所以我进一步以下面的方式存储所有内容,所有内容都在结果列表数组列表中

List<String> resultList = new ArrayList<String>();
        List<Object[]> listObj = (List<Object[]>)query.getResultList();
        for(Object[] obj: listObj){
            for (Object o : obj) {
                resultList.add(String.valueOf(o));
            }
        }
        return resultList;

现在在程序的其他部分中,我必须以如下方式迭代这个 resultList

字符串产品;字符串价格;

 Product = "AAA" //In first iteration
 Price= "111"

然后在第二次迭代中

     Product = "BBB" //In first iteration
     Price= "222"

所以我必须以这种方式进行迭代,以便在每次迭代时我都可以迭代产品和价格,所以请告知如何实现这一点

标签: java

解决方案


您可以创建一个Product包含nameprice

public class Product {
    private String name;
    private String price; // maybe this should be a number

    public Product(String name, String price) {
        this.name = name;
        this.price = price;
    }

    public String getName() {
        return this.name;
    }

    public String getPrice() {
        return this.price;
    }
}

然后,List<String>您可以使用 a 而不是将所有内容存储到 aList<Product>

List<Produc> resultList = new ArrayList<>();
    List<Object[]> listObj = (List<Object[]>)query.getResultList();
    for(Object[] obj: listObj){
        String name = String.valueOf(obj[0]);
        String price = String.valueOf(obj[1]);
        resultList.add(new Product(name, price);
    }
    return resultList;
}

然后,当您需要遍历列表时,您可以执行以下操作:

for(Product prod : resultList) {
    System.out.printf("Name = %s, Price = %s%n", prod.getName(), prod.getPrice());
}

推荐阅读