[英]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.