从另一个ArrayList内的ArrayList访问值

时间:2018-05-28 08:43:10

标签: java arrays arraylist

java.util.List records = new java.util.ArrayList();
java.sql.ResultSet rs = selectestatement.executeQuery(query1);

 while (rs.next()) {

     java.util.List record = new java.util.ArrayList();

     record.add(rs.getString("WHLO").trim());
     record.add("888509018579");                            
     record.add(rs.getString("ITEM_CODE").trim());
     record.add(rs.getString("ARRIVAL_DATE").trim());
     record.add(rs.getString("PAIRS_PER_CASE").trim());  
     record.add(rs.getString("ATS").trim());
     records.add(record);   
 }

在此代码中,Final arraylist是“记录数组”。这记录了arraylist内容很少的记录数组。

如何从记录arraylist中访问记录arraylist的第一个元素?

3 个答案:

答案 0 :(得分:3)

不要使用原始类型:

List<List<String>> records = new ArrayList<>();
List<String> record = new ArrayList<>();
...
records.add(record);

这样records.get(i)将返回List<String>而不是Object,因此您可以访问内部List的元素:

String first = records.get(0).get(0);

答案 1 :(得分:2)

您真正想要的是一个包含行数据的类。

class RecordData {
    public String whlo;
    public long someNumber = 888509018579;
    public String itemCode;
    public String arrivalDate;
    public String pairsPerCase;
    public String ats;
}

然后再做

java.util.List<RecordData> records = new java.util.ArrayList<>();
while (rs.next()) {

    RecordData record = new RecordData();
    record.whlo = rs.getString("WHLO").trim();
    record.itemCode = rs.getString("ITEM_CODE").trim();
    record.arrivalDate = rs.getString("ARRIVAL_DATE").trim();
    record.pairsPerCase = rs.getString("PAIRS_PER_CASE").trim();
    record.ats = rs.getString("ATS").trim();

    records.add(record);    
}

事实上,您希望通过getter和setter将成员设为私有且可访问,并为LocalDate成员使用arrivalDateint成员,但第一点不是使用pairsPerCase来存储检索到的值,而是将其包装在面向业务的类中。

答案 2 :(得分:0)

你可以做这样的事情

((ArrayList)records.get(0)).get(0)访问位于记录数组列表第一个位置的数组列表的第一个元素。

请注意,如果您指定记录包含的内容(在这种情况下记录将包含数组列表),那么您将不需要将该元素强制转换为数组列表。

List<List<String>> records = new ArrayList<ArrayList>();
{...}
records.get(0).get(0); //You don't need the cast because Java already knows that what it is inside records are Lists