我正在开发一个简单的程序,它从一个文件中读取数据并将其放入一个容器中,该容器被定义为一个映射,每个列包含一个ArrayList对象。列的名称放在枚举中。
问题是,ArrayLists是原始的,而我的数据是String类型。
import java.io.*;
import java.util.ArrayList;
import java.util.Map;
import java.util.TreeMap;
import static lista3.ColumnName.*;
public class Zad2 {
//Name,Surname,Salary,District,Position
Map<ColumnName, ArrayList> columnHolder = new TreeMap<>();
//combination of a map, holding ArrayLists, represents an extendable table.
//Notation holder.get(ColumnName c).get(index j) represents getting the value from specified column
//and row index j
//an iterable holder of columns
private final static ColumnName[] ITERABLE_COLUMN_NAMES = ColumnName.values();
//initialization block for all columns present in ColumnName Enum.
{
for (ColumnName c: ITERABLE_COLUMN_NAMES) {
columnHolder.put(c, new ArrayList<String>());
}
}
}
我的问题是-如果我在初始化块中放入for循环一个ArrayList对象的声明并将其放入映射中,它不会引用同一个对象吗?
//initialization block for all columns present in ColumnName Enum.
{
for (ColumnName c: ITERABLE_COLUMN_NAMES) {
ArrayList<String> a = new ArrayList<>();
columnHolder.put(c, a);
}
}