我有一个数据库中的表,用于查看下面给出的结构
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);
}
答案 0 :(得分:1)
您可以考虑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);
答案 1 :(得分:1)
尝试创建一个Object来保存你的值:
string1
答案 2 :(得分:1)
这是最简单的方法
public Class A{
private int id;
private String col1;
private String col2;
@Override
public String toString(){
return "Id: "+id+ " col1: " + col1 + " col2: " + col2;
}
}
//Main Method
ArrayList<A> list=new Gson.fromJson(result,A.class);
for(A a:list)
System.out.println(a.toString());
OR
for(int i=0;i<list.size();i++)
System.out.println(list.get(i));