Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的数据结构是什么?_Java_List_Data Structures_Dictionary_Set - Fatal编程技术网

Java中的数据结构是什么?

Java中的数据结构是什么?,java,list,data-structures,dictionary,set,Java,List,Data Structures,Dictionary,Set,在Python中,如果您了解标准的“list”、“tuple”、“set”和“dictionary”,就可以走得很远。这些是任何优秀的Python程序员都应该知道的基本数据结构 这些数据结构的Java等价物是什么?还有其他值得注意的数据结构吗?遗憾的是,Java中没有本机元组,大多数情况下,您会使用: 列表:ArrayList(是列表,列表是集合) Set:HashSet(是一个集合,集合是一个集合) 字典:HashMap(是一个映射,但映射不是集合) 大体上看一下Java集合: 对于并发性

在Python中,如果您了解标准的“list”、“tuple”、“set”和“dictionary”,就可以走得很远。这些是任何优秀的Python程序员都应该知道的基本数据结构


这些数据结构的Java等价物是什么?还有其他值得注意的数据结构吗?

遗憾的是,Java中没有本机元组,大多数情况下,您会使用:

  • 列表:ArrayList(是列表,列表是集合)
  • Set:HashSet(是一个集合,集合是一个集合)
  • 字典:HashMap(是一个映射,但映射不是集合)
大体上看一下Java集合: 对于并发性:


有很多外部库(Guava、Apache等)

你可以用LinkedList、HashMap、HashSet做很多事情,我们还有一个字典

学习任何新语言的最好方法就是阅读代码。GitHub承载大量开源Java应用程序。您可以在此处查看最新版本:

有帮助吗

Java的所有数据结构,包括集合、列表,都是在中定义的。HashMap本质上等同于字典


至于元组等价物,请查看。

在Java中,他有一个一刀切的工具:类。对于使用元组或字典在Python中解决的大多数问题,在Java中编写一个自定义类,其中包含实例变量、构造函数、getter和setter。因此,在使用Java时,请准备编写一些样板文件

至于数据结构,默认的是
ArrayList
HashSet
HashMap
。有分类版本:
TreeSet
TreeMap
——当您需要它们时,它们非常有用

当您需要接近金属性能时,您将求助于阵列


在Java中,您也喜欢内置的并发性,然后它变得复杂起来:有性能选项,如
ConcurrentHashSet/Map
,还有围绕普通集合的同步包装器:
collections/synchronizedSet/Map/List
(这些方法返回包装对象)。

在Java中,有
Set
列表
映射
接口(您必须选择要使用的实现)。不幸的是,
tuple
没有等价物。请检查java collections framework@nhahtdh,除了不可修改的
列表
,您希望等价物
tuple
如何工作?这不是一个严肃的问题。别偷懒,这在5秒钟内就可以搞定了。@arne.b:你可以通过编写一个泛型
对来“模拟”元组,并将其重新用于更高维度的元组。不过它很难看。如果元组要重复出现很多次,我会选择这个类。那个字典类已经过时了。它看起来像是从1.6开始掉落的。最新的搜索结果指向了它的位置。正如其他人所提到的,学习是一个好主意。