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的第一个元素?
答案 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
成员使用arrivalDate
和int
成员,但第一点不是使用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