我可以使用字符串列表作为键创建Hashtable,并将对象列表作为值创建吗?

时间:2018-02-21 20:19:04

标签: java csv object hash hashtable

我正在尝试创建一个员工哈希表,我需要一些帮助。我有一个雇员对象列表(人员),以及他们的用户名字符串列表(UsersToCompare)。我想知道是否有一种简单的方法可以将字符串列表(UsersToCompare)设置为哈希表中的键,将对象列表(People)设置为值?这是我目前正在处理的代码:

`public class HashTable {
static List<String> UsersToCompare = new ArrayList<String>();
static List<Entry> People = new ArrayList<>();
Hashtable<String, Object> theTable;
    public void readFromFile() {
        BufferedReader br = null;
        String csvFile = "employee_data.csv";
        String line = "";
        String cvsSplitBy = ",";
        try {
            br = new BufferedReader(new FileReader(csvFile));
            while ((line = br.readLine()) != null) {
                String[] Labels = line.split(cvsSplitBy);
                UsersToCompare.add(Labels[0]);
                Entry entry = new Entry(Labels[0], Labels[1], Labels[2], Labels[3], Labels[4], Labels[5], Labels[6],
                        Labels[7]);
                People.add(entry);
//              theTable.put(Labels[0], entry);   ////null pointer exception
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }`

标签[0]是CSV文件的第一列,我在其中检索用户名。 UsersToCompare和People列表都填充了我想用作值和键的内容,我只是不知道如何正确设置它们。上面你可以看到我试图在读取文件时将它们放入,但是我得到了一个空指针异常。此外,在将对象放入人员列表之前,entry是对象的名称。有很多字符串分隔,因为它包含用户名,姓名,种族,性别,SSN等所有内容。

0 个答案:

没有答案