【问题标题】:2 Hashtable Keys2个哈希表键
【发布时间】:2011-08-16 03:48:58
【问题描述】:

我有 2 条记录是标题。

示例
记录 1:我的头衔
记录2:我的另一个头衔

我需要使用 Hashtable 将它们存储到 ArrayList 中。

这就是我的工作。

package com.Testing;

import java.util.Hashtable;
import java.util.ArrayList;
import java.util.Dictionary;



public class AnotherClass {
    private Hashtable <String, String> items = new Hashtable <String, String>();
    private ArrayList <Hashtable <String, String>> finalArray = new ArrayList <Hashtable <String, String>>();

    public ArrayList <Hashtable <String, String>> returnArray() {
        return finalArray;
    }

    public void adding() {
            this.items.put("Record", "Record 1");
        this.items.put("Format", "My Title");
        this.finalArray.add(items);

            this.items.put("Record", "Record 2");
        this.items.put("Format", "My ANOTHER Title");
        this.finalArray.add(items);
    }
}

当我通过遍历 arraylist 打印我的项目结果时,它只显示第二条记录。

有什么建议让它同时显示两条记录吗?

谢谢!

【问题讨论】:

  • "我需要使用 Hashtable 将它们存储到 ArrayList 中。"除非这是家庭作业要求,否则我建议任何人这样做。你能确认这是作业吗?

标签: java collections arraylist hashtable


【解决方案1】:

在创建第一条和第二条记录之间,输入:

this.items = new Hashtable <String, String>();

问题是您对两条记录重复使用相同的哈希表。

此外,现在您应该使用 HashMap 代替 Hashtable,并且应该使用最广泛的有用类型声明变量,这意味着 List 而不是 ArrayList,以及 Map 而不是 Hashtable 或 HashMap。不需要在变量的类型中描述实现类;这是一个你在使用变量时不需要知道的细节,所以它只是杂乱无章。

【讨论】:

    【解决方案2】:

    您将对同一哈希表的引用放入finalArray 两次。当您更改哈希表时,您会看到更改会影响finalArray 的两个元素。

    【讨论】:

      【解决方案3】:

      您正在为两条记录插入相同的 Hashtable。当您插入第二条记录时,您会覆盖第一条记录的值,因此您会获得第二条记录两次..

      【讨论】:

        猜你喜欢
        • 2016-04-25
        • 2013-08-21
        • 2022-01-15
        • 2012-03-13
        • 2016-08-31
        • 2011-04-17
        • 2019-05-03
        • 2021-05-14
        • 1970-01-01
        相关资源
        最近更新 更多