gpt4 book ai didi

java - 逐行打印 arraylist 中的项目以获取列中的特定索引值

转载 作者:行者123 更新时间:2023-11-29 05:08:23 25 4
gpt4 key购买 nike

我有一个来自数据库的表,它查看下面给出的这个结构

id | col1  | col2
1 | item1 | item2
2 | item3 | item4

我已经声明了 arraylist 来保存所示的值

ArrayList<String> dataList = new ArrayList<String>();

我已经声明了 json 数组来保存来自数据库的结果数据数组

JSONArray jArray = new JSONArray(result);

我遍历 json 数组并将项目添加到数组列表中,如图所示

 for (int i = 0; i < jArray.length(); i++) {
JSONObject json_data = jArray.getJSONObject(i);
dataList.add(json_data.getString("col1"));
dataList.add(json_data.getString("col2"));

我如何遍历 arraylist 以逐行获取项目,以便我可以按索引位置在特定列中获取数据。下面是我的尝试,但它没有按预期工作,因为它遍历打印出所有内容

for (String line : dataList) {
System.out.println("this is the element in the arraylist>>>>> " +line);
}

最佳答案

您可以考虑一个 String 数组列表,这样每个条目代表一行:

列表:

ArrayList<String[]> dataList = new ArrayList<String[]>();

填充列表:

 for (int i = 0; i < jArray.length(); i++) {

JSONObject json_data = jArray.getJSONObject(i);
String[] strArray = new String[2];
strArray[0] = json_data.getString("col1");
strArray[1] = json_data.getString("col2");
dataList.add(strArray);

}

使用列表:

for (String[] line : dataList) {    

System.out.println("Elements in the arraylist >>>>> " +line[0] + " " +line[1]);

}

或者,对于更通用的方式,您可以使用枚举:

private enum Column {

COL1("col1"), COL2("col2");

private String name;

public String getName() {
return name;
}

Column(final String name) {
this.name = name;
}

}

然后填充列表:

 for (int i = 0; i < jArray.length(); i++) {

JSONObject json_data = jArray.getJSONObject(i);
String[] strArray = new String[Column.values().length];
for (Column column : Column.values()){
strArray[column.ordinal()] = json_data.getString(column.getName());
}
dataList.add(strArray);

}

并且有一个可以过滤一个或多个列的显示方法:

private void displayColumns(Column ...columns){

for(Column column : columns){

//System.out.println(column.getName());

for (String[] line : dataList) {

System.out.println( line[column.ordinal()]);

}
}
}

您可以调用此方法,例如:

displayColumns(Column.COL1);
displayColumns(Column.COL2);
displayColumns(Column.COL1, Column.COL2);

关于java - 逐行打印 arraylist 中的项目以获取列中的特定索引值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44048065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com