Java中的HashMaping
问题 我正在尝试使用Java中的HashMaps创建类似多维关联数组的东西。出于某种原因,我得到了地图中所有元素的类似结果。下面是我正在使用的代码Java中的HashMaping,java,arrays,list,hashmap,Java,Arrays,List,Hashmap,问题 我正在尝试使用Java中的HashMaps创建类似多维关联数组的东西。出于某种原因,我得到了地图中所有元素的类似结果。下面是我正在使用的代码 private HashMap<String, HashMap<String, String>> getNullableColumns(Connection dbConn, String resource) throws SQLException { HashMap<String, HashMap<St
private HashMap<String, HashMap<String, String>> getNullableColumns(Connection dbConn, String resource) throws SQLException {
HashMap<String, HashMap<String, String>> nullableColumns = new HashMap<String, HashMap<String, String>>();
HashMap<String, String> column = new HashMap<String, String>();
DatabaseMetaData dm = dbConn.getMetaData();
ResultSet rsColumns = dm.getColumns(null, null, getTable(resource), null);
while( rsColumns.next( ) )
{
String type = rsColumns.getString("TYPE_NAME");
String nullable1 = rsColumns.getString("NULLABLE");
String nullable2 = rsColumns.getString("IS_NULLABLE");
String dataType = rsColumns.getString("DATA_TYPE");
String columnName = rsColumns.getString("COLUMN_NAME");
column.put("type", type);
column.put("nullable", nullable1);
nullableColumns.put(columnName, column);
}
return nullableColumns;
}
private HashMap getNullableColumns(连接dbConn,字符串资源)抛出SQLException{
HashMap nullableColumns=新HashMap();
HashMap column=新的HashMap();
DatabaseMetaData dm=dbConn.getMetaData();
ResultSet rsColumns=dm.getColumns(null,null,getTable(resource),null);
while(rsColumns.next())
{
String type=rsColumns.getString(“type_NAME”);
String nullable1=rsColumns.getString(“NULLABLE”);
String nullable2=rsColumns.getString(“IS_NULLABLE”);
stringdatatype=rsColumns.getString(“数据类型”);
String columnName=rsColumns.getString(“COLUMN_NAME”);
列。put(“类型”,类型);
列.put(“可空”,可空1);
nullableColumns.put(columnName,column);
}
返回nullableColumns;
}
解释:
我在列HashMap中得到了正确的结果,但是当我将它们中的每一个放到nullableColumns中时,所有元素的末尾都有相同的属性,例如所有字段的类型都是varchar,nullable是0。看起来我最终以某种方式推翻了结果,但我不知道我在哪里犯了这个错误
有什么建议吗?您正在添加相同的
HashMap
实例
HashMap<String, String> column = new HashMap<String, String>();
您正在添加相同的
HashMap
实例
HashMap<String, String> column = new HashMap<String, String>();