Java中的HashMaping

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

问题

我正在尝试使用Java中的HashMaps创建类似多维关联数组的东西。出于某种原因,我得到了地图中所有元素的类似结果。下面是我正在使用的代码

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>();