Java 在地图上打印值对象<String, Object>
Java Print Value Object on Map<String, Object>
我在另一个 class
上设置列表
List<DataModel> dataList = new ArrayList<DataModel>();
解析于 class
for(DataModel list : dataList) {
final String[] data = {list.getVar_a(), list.getVar_b()};
System.out.println("out data");
System.out.println(list.getVar_a());
System.out.println(list.getVar_b());
}
这会打印数据
out data
val_a
val_b
型号Class
class DataModel {
private String var_a, var_b;
//Getter & Setter
}
但现在,我在另一个 class 上使用和设置地图,我没有实施模型 class 因为在实际情况下它有太多变量。
Map<String, Object> mapData = new LinkedHashMap<String, Object>();
当我在地图上设置数据时,它的结果来自数据库
Map<String, Object> map = new LinkedHashMap<String, Object>();
msg = (String) cs.getObject(5);
rs = (ResultSet) cs.getObject(4);
ResultSetMetaData rsmd = rs.getMetaData();
int count = rsmd.getColumnCount();
if(rs.next()){
int jml = 0;
do {
Map<String, Object> data = new LinkedHashMap<>();
for (int i = 1; i <= count; i++ ) {
String name = rsmd.getColumnName(i);
data.put(name, rs.getObject(name));
}
map.put(""+jml, data);
jml++;
} while(rs.next());
setStatus(SUCCESS);
setMessage(msg);
} else {
LOG.info(NO_DATA_FOUND);
}
解析于 class
for(Map.Entry<String,Object> list : mapData.entrySet()) {
String key = list.getKey();
Object val = list.getValue();
System.out.println("out data");
System.out.println(key);
System.out.println(val);
}
这会打印数据
out data
0
{var_a=val_a, var_b=val_b}
我想像这样获取对象的价值
out data
val_a
val_b
将您的 Map for 循环更改为:
for(Map.Entry<String,Object> list : mapData.entrySet()) {
DataModel value = (DataModel) list.getValue();
System.out.println("out data");
System.out.println(value.getVar_a());
System.out.println(value.getVar_b());
}
首先你有一个对象的地图,你真正需要的是地图的地图。
这是您正在阅读的对象图。
for(Map.Entry<String,Object> list : mapData.entrySet()) {
String key = list.getKey();
Object val = list.getValue();
System.out.println("out data");
System.out.println(key);
System.out.println(val);
}
您真正需要的是我在下面显示的地图中的地图。
Map<String, Map<String, Object>> map = new LinkedHashMap<String, Map<String, Object>>()
现在如果你把它看成地图的地图,你可以得到你需要的结果。
0
: {a1:v1, a2:v2, 等等...},
1
: {a2:v2, a2:v2, 等等...},
2
: {a3:v3, a3:v3, 等等...}
for(Map.Entry<String,Map<String, Object> list : mapData.entrySet()) {
String key = list.getKey();
System.out.println("out data");
for(Map.Entry<String,Object> innermap : list.getValue().entrySet()) {
//System.out.println(innermap.getKey());
System.out.println(innermap.getValue());
}
}
我在另一个 class
上设置列表List<DataModel> dataList = new ArrayList<DataModel>();
解析于 class
for(DataModel list : dataList) {
final String[] data = {list.getVar_a(), list.getVar_b()};
System.out.println("out data");
System.out.println(list.getVar_a());
System.out.println(list.getVar_b());
}
这会打印数据
out data
val_a
val_b
型号Class
class DataModel {
private String var_a, var_b;
//Getter & Setter
}
但现在,我在另一个 class 上使用和设置地图,我没有实施模型 class 因为在实际情况下它有太多变量。
Map<String, Object> mapData = new LinkedHashMap<String, Object>();
当我在地图上设置数据时,它的结果来自数据库
Map<String, Object> map = new LinkedHashMap<String, Object>();
msg = (String) cs.getObject(5);
rs = (ResultSet) cs.getObject(4);
ResultSetMetaData rsmd = rs.getMetaData();
int count = rsmd.getColumnCount();
if(rs.next()){
int jml = 0;
do {
Map<String, Object> data = new LinkedHashMap<>();
for (int i = 1; i <= count; i++ ) {
String name = rsmd.getColumnName(i);
data.put(name, rs.getObject(name));
}
map.put(""+jml, data);
jml++;
} while(rs.next());
setStatus(SUCCESS);
setMessage(msg);
} else {
LOG.info(NO_DATA_FOUND);
}
解析于 class
for(Map.Entry<String,Object> list : mapData.entrySet()) {
String key = list.getKey();
Object val = list.getValue();
System.out.println("out data");
System.out.println(key);
System.out.println(val);
}
这会打印数据
out data
0
{var_a=val_a, var_b=val_b}
我想像这样获取对象的价值
out data
val_a
val_b
将您的 Map for 循环更改为:
for(Map.Entry<String,Object> list : mapData.entrySet()) {
DataModel value = (DataModel) list.getValue();
System.out.println("out data");
System.out.println(value.getVar_a());
System.out.println(value.getVar_b());
}
首先你有一个对象的地图,你真正需要的是地图的地图。
这是您正在阅读的对象图。
for(Map.Entry<String,Object> list : mapData.entrySet()) {
String key = list.getKey();
Object val = list.getValue();
System.out.println("out data");
System.out.println(key);
System.out.println(val);
}
您真正需要的是我在下面显示的地图中的地图。
Map<String, Map<String, Object>> map = new LinkedHashMap<String, Map<String, Object>>()
现在如果你把它看成地图的地图,你可以得到你需要的结果。
0
: {a1:v1, a2:v2, 等等...},
1
: {a2:v2, a2:v2, 等等...},
2
: {a3:v3, a3:v3, 等等...}
for(Map.Entry<String,Map<String, Object> list : mapData.entrySet()) {
String key = list.getKey();
System.out.println("out data");
for(Map.Entry<String,Object> innermap : list.getValue().entrySet()) {
//System.out.println(innermap.getKey());
System.out.println(innermap.getValue());
}
}