【问题标题】:Is it possible to store a String in a HashMap for a certain period of time是否可以在一段时间内将字符串存储在 HashMap 中
【发布时间】:2016-09-21 02:57:24
【问题描述】:

所以我对 java 还很陌生,但我有一个问题: 是否可以将字符串存储在 ArrayList 中一段时间​​,或者我必须将其存储在 HashMap 中,但如果我确实将它存储在 HashMap 中,我不知道如何制作它,所以我可以存储持续一段时间。

【问题讨论】:

  • 尝试分解问题:你知道如何将一些东西放入 HashMap 中吗?你知道如何从中取出一些东西吗?您是否知道如何在一定时间后执行某项操作(在线快速搜索该短语会发现多个匹配项)?这些将是你的起点。请注意,这几乎肯定涉及多线程,这本身就是一个复杂的主题——如果您是 Java 新手(或一般编程),这个问题可能不是一个好的起点。
  • 仅供参考,您之所以被否决,是因为您没有多大意义(是什么给您的印象,HashMap 可以解决这个问题?)并且不清楚您做了什么研究或者你迄今为止尝试过的。添加有关您实际尝试完成的内容的更多上下文,以及有关您对这些类的理解的更多详细信息,将有助于使这个问题成为一个更好的问题。请参阅how to ask 了解更多信息。

标签: java string arraylist time hashmap


【解决方案1】:

注意:在哈希映射/数组列表中只存储一段时间听起来像是 XY 问题。可能有更好的方法来实现您的最终目标。但如果你坚持,这就是方法。

有一个东西叫javax.swing.Timer。如果您想测量时间,它非常有用。

首先,让我们创建一个ArrayList

final ArrayList<String> arr = new ArrayList<>();

arr.add("Hello");

很简单,不用解释了。

然后,我们创建计时器:

final Timer t = new Timer(1000, new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        t.stop();
        arr.remove("Hello");
    }
});

这里有点有点复杂。 Timer 的构造函数有 2 个参数。第一个是定时器的延迟,以毫秒为单位。在这里我写了 1000 所以它会在一秒钟后从数组中删除该项目。第二个参数是延迟后它会做的事情。在这种情况下,我们告诉它先停止计时器(因为我们只想运行一次)并删除该项目。

创建定时器后,我们当然需要启动定时器!

t.start();

然后砰!该数组将只保留"Hello" 一秒钟!

【讨论】:

    【解决方案2】:

    您可以将字符串存储在数组列表中,也可以将字符串存储在任何 Java 集合中,如列表、映射、队列等。能够存储字符串、整数、双精度等以及用户定义类的对象。为此,请使用, List listObj = new ArrayList(yourArrayListSize);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      • 1970-01-01
      • 1970-01-01
      • 2021-07-25
      • 2012-04-22
      • 2013-05-24
      • 2014-04-06
      相关资源
      最近更新 更多