在JAVA中常用的数据结构(容器)都有哪些?有啥特点?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在JAVA中常用的数据结构(容器)都有哪些?有啥特点?相关的知识,希望对你有一定的参考价值。

参考技术A JAVA的容器---List,Map,Set
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
参考技术B 问题过于宽泛,简单列举几个接口:
接口 Collection<E>:
Collection 层次结构 中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。

接口 Enumeration<E>:
实现 Enumeration 接口的对象,它生成一系列元素,一次生成一个。连续调用 nextElement 方法将返回一系列的连续元素。

接口 List<E>:有超级接口:Collection<E>, Iterable<E>
有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。

接口 Map<K,V>:
将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射一个值。

接口 Queue<E>:所有超级接口:Collection<E>, Iterable<E>
在处理元素前用于保存元素的集合。除了基本的 Collection 操作外,队列还提供其他的插入、提取和检查操作。

接口 Set<E>:所有超级接口:Collection<E>, Iterable<E>
一个不包含重复元素的 collection。更正式地说,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。正如其名称所暗示的,此接口模仿了数学上的 set 抽象。本回答被提问者采纳

无法与 typedef 成为朋友:有啥特别的原因吗?

【中文标题】无法与 typedef 成为朋友:有啥特别的原因吗?【英文标题】:Not able to befriend typedefs: any particular reason?无法与 typedef 成为朋友:有什么特别的原因吗? 【发布时间】:2011-05-13 15:03:51 【问题描述】:
struct A ;
typedef A B;

struct C  friend struct B; ;

GCC 4.7.0 20110427 告诉我error: using typedef-name 'B' after 'struct'

到目前为止,这似乎是不言自明的;毕竟,我的示例代码试图声明一个名为 B 的 struct 并成为其好友,而实际上它不是 struct-key

但是,如果A 实际上是一个复杂、冗长的模板元黑客混乱,我必须写friend struct A;,这是不可取的。

我是否遗漏了什么,或者我们实际上可以 friend 通过类型别名进行类型吗?如果不是,是否有任何特殊原因,还是只是语言的怪癖?


This question 之前提出过这个问题,但已经过时,并且对有关 C++0x 的问题做出了似乎不正确的断言。 这个问题是关于 C++0x FDIS。

【问题讨论】:

***.com/questions/656948/… 可能是相关的。 哦,哈……这是我。大声笑.... 【参考方案1】:

你可以和任意类型成为朋友(对于非类类型,朋友声明将被忽略),但是你应该省略struct

struct A ;
typedef A B;

struct C  
  friend B; // equivalent: friend struct A;
            // equivalent: friend A;

  friend int; // ignored
;

【讨论】:

也许 GCC 4.7.0 和 GCC 4.5.1 还不支持这个? @Tomalak 是的,他们不支持这个。 啊,是的,Clang 2.9(主干 126116)似乎支持它。

以上是关于在JAVA中常用的数据结构(容器)都有哪些?有啥特点?的主要内容,如果未能解决你的问题,请参考以下文章

spring中的核心类都有哪些,各有啥作用!

python中字典常用的方法都有哪些,分别有啥作用?

Java的IO的类都有哪些?都有啥用?

java的容器控件都有哪些?

常用网络拓扑结构都有哪些?各有啥特点

spring中的核心类都有哪些,各有啥作用!