繁体   English   中英

从另一个ArrayList内部的ArrayList访问值

[英]Access Values from an ArrayList That is inside another 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);   
 }

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

如何从记录数组列表访问记录数组列表的第一个元素?

不要使用原始类型:

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);

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

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来到达arrivalDate ,将int用作pairsPerCase成员,但是第一点不是使用List来存储检索到的值,而是将其包装在业务中导向类。

你可以做这样的事情

((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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM