迭代数组列表并存储它的内容

时间:2018-06-16 13:21:05

标签: java

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

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

所以我进一步以下面的方式存储所有内容,这些内容都在结果列表arraylist

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

String Product; 字符串价格;

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

然后在第二次迭代

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

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

1 个答案:

答案 0 :(得分:0)

您可以创建包含Productname

的班级price
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>

而不是将所有内容存储到List<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());
}