相关疑难解决方法(0)

哈希:表格,列表和地图,哦,我的?

我一直试图找到各种类型的哈希数据结构的具体(非专业;非超学术)定义,特别是哈希表,哈希列表和哈希映射.在线搜索为所有这些提供了许多有用的链接,但从未明确定义何时适合使用其他链接.

(1)从实际的角度来看,这3个有什么区别?

(2)他们的运营运行时间有何不同?是否应该使用或避免使用其他类型的哈希值?

(3)每个如何与地图ADT有关?它们只是不同的实现,还是完全不同的野兽?

感谢您的任何见解!

hash computer-science data-structures

7
推荐指数
1
解决办法
146
查看次数

在多线程环境中使用HashMap

我正在阅读关于JavaRevisited的面试问题,我很难理解这个问题:

在多线程环境中使用HashMap有什么问题?当get()方法进入无限循环时?

在我看来,HashMap在多线程环境中使用并不是问题,只要我们的应用程序不访问/读取正在修改创建的线程HashMap,而不是简单地访问HashMap.

所以,正如我所看到的,只要在应用程序中我们只是HashMap在多线程环境中访问它就没有问题.

如果我的理解是正确的,请告诉我.

java multithreading

7
推荐指数
1
解决办法
2万
查看次数

有没有办法在一个哈希表变量中存储多种数据类型?

我有一个Hashtable关键字String和值String,但我已经达到了我的项目中我需要能够存储多种不同数据类型的点.例如,我将需要存储int,String,Date,等等,都在同一个Hashtable.

java

7
推荐指数
2
解决办法
1万
查看次数

使用Java Dictionary ...使用Hashtable?

我有点惊讶没有人问过这个特定情况,因为它在java标准库中有点奇怪的不一致:

我正在使用带自定义标签的swing JSliders; 唯一可用于分配标签的库调用是:setLabelTable(Dictionary labels)

但是Dictionary是一个抽象类,它在标准库中唯一已知的子类是Hashtable,api和各种IDE都抱怨它,因为它是"过时的".

显而易见的事情就是使用Hashtable,但我想知道两件事:

  1. 有没有更好的方法来解决这个问题?
  2. 如果Hashtable是唯一可用的类(在我看来)相当重要的库调用,它在什么基础上"过时"?

谢谢!

java swing jslider

6
推荐指数
1
解决办法
1119
查看次数

什么将在Java中存储键值列表或在Java中存储C#IDictionary的替代?

我是java开发的新手,我来自C#.net,正在开发android应用程序.

我正在寻找在Java中使用的Key-Value列表,与C#中的IDictionary相同.

谢谢

java dictionary data-structures

5
推荐指数
2
解决办法
3万
查看次数

hashmap和hashtable的区别|

可能的重复:
HashMap 和 Hashtable 之间的区别?

前几天去面试,面试官问我什么情况下使用hashmap而不是hashtable会有问题?意思是给出一个例子,其中 hashtmap 使用会导致问题,但使用 hashtable 将解决问题。

他告诉我运行代码的机器是单核的!

我给了一个例如

Time        Thread1            Thread 2
   t0    tb.put("a",1)       
   t1     tb.put("a",2)          int a = tb.get("a"); 
Run Code Online (Sandbox Code Playgroud)

我告诉过,如果在 t1 时 t1 和 t2 同时执行,则会导致问题。他说,由于它是单核CPU,因此永远不会并行执行2条语句

有人可以澄清一下,什么时候会出现问题吗?有情况举例吗?

编辑:我通过交互 hashmap 和 hashtable 发布了这个问题。我知道 hashtable 方法是同步的,而 hashmap 的方法不是同步的,我已经告诉他了

为了体验我实现了以下内容。并且代码从未崩溃?我不使用哈希表,但它仍然是 A 中的哈希图:)

public class MyT extends Thread {

    HashMap<String,String > a = A.t;
    @Override
    public void run() {
        while (true) {
            a.put("a", "one");
            System.out.println(Thread.currentThread().getName());
        }
    }

    public static void main(String[] args) {
        MyT t1 = new MyT();
        t1.start(); …
Run Code Online (Sandbox Code Playgroud)

java hashtable hashmap

5
推荐指数
1
解决办法
2815
查看次数

Java中Ruby Harash的等价物

我真的在Ruby中使用以下类型的代码:

my_hash = {}

my_hash['test'] = 1
Run Code Online (Sandbox Code Playgroud)

Java中的对应数据结构是什么?

ruby java hash

5
推荐指数
1
解决办法
2648
查看次数

java.nio.file.Files 和 java.io.File 的区别?

与 File 相比, Files 有哪些优势或主要特点?什么时候更喜欢一个?为什么?

编辑:这只是我们世界中的另一个“差异”问题-因此请确保您真的想对它投反对票!

java file-io nio

5
推荐指数
2
解决办法
3930
查看次数

java中的同步hashmap写入但不读取

我知道 Java 中的 ConcurrentHashMap 及其众多优点,但我不太清楚为什么像同步 HashMap 这样的实现需要在每个函数调用上同步。

对我来说,感觉就像如果你有一个 HashMap ,其唯一的功能是put(k, v)get(k),那么只有该put函数需要同步,因为即使你在调用后调整 hashMap 的大小put,那么你仍然可以在执行时授予安全的读取访问权限调整大小。读取器线程可以简单地读取调整大小之前的版本。当调整大小完成后,编写器线程将替换引用,以便所有当前调用都get将指向 HashMap 的调整大小版本。

我错过了一些明显的东西吗?

java concurrency multithreading hashmap

5
推荐指数
1
解决办法
1189
查看次数

混乱的hashmap和hashtable之间的差异

我有一个困惑:

我在很多帖子中都读到Hash-map被实现为二进制搜索树,这使得各种操作时间复杂度成为对数顺序.

另一方面,哈希表提供恒定的时间提取.

但是,正如我在本文中所读到的那样,在两个数据结构中检索/搜索元素的复杂性方面没有提供任何差异.

所以,这是我的问题 -

由于散列表保证提供恒定的搜索时间复杂度,因此它们的实现必须与散列映射的实现不同.那么,如果有人不提供恒定时间搜索,为什么有人会使用哈希映射.另外,为什么首先将它们实现为二叉搜索树?

我知道哈希映射以排序的形式存储密钥,并通过映射提供迭代.但是,也可以在哈希表中提供相同的内容.

c++ hashtable hashmap binary-search-tree data-structures

4
推荐指数
1
解决办法
6914
查看次数