Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
jtn-zh
提交
39b5968c
J
jtn-zh
项目概览
OpenDocCN
/
jtn-zh
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jtn-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
39b5968c
编写于
11月 27, 2019
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2019-11-27 17:22:46
上级
aef53d0d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
26 addition
and
26 deletion
+26
-26
docs/60.md
docs/60.md
+26
-26
未找到文件。
docs/60.md
浏览文件 @
39b5968c
...
...
@@ -2,16 +2,16 @@
> 原文: [https://javatutorial.net/java-treeset-example](https://javatutorial.net/java-treeset-example)
Java
TreeSet 类是一个基于
[
TreeMap
](
https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html
)
的
[
NavigableSet
](
https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html
)
实现。 元素可以通过
[
比较器
](
https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html
)
进行排序,也可以仅通过其自然排序进行排序。 在复杂度方面,此实现为所有基本操作(例如添加,删除,包含)提供了 log(n)
时间成本。
Java
`TreeSet`
类是一个基于
[
`TreeMap`
](
https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html
)
的
[
`NavigableSet`
](
https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html
)
实现。 元素可以通过
[
`Comparator`
](
https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html
)
进行排序,也可以仅通过其自然排序进行排序。 在复杂度方面,此实现为所有基本操作(例如添加,删除,包含)提供了
`log(n)`
时间成本。
![
java-featured-image
](
img/e0db051dedc1179e7424b6d998a6a772.jpg
)
## 关于 Java 中的`TreeSet`的重要知识
*
TreeSet 实现 SortedSet
接口,这意味着不允许重复值。
*
异构对象不能插入
TreeSet 中,因为它不允许这样做。 它将在运行时引发 classCastException
。
*
TreeSet
类不保留元素的插入顺序,但是元素按其键排序。
*
TreeSet
中的元素以升序和排序顺序存储。
*
`TreeSet`
实现
`SortedSe`
接口,这意味着不允许重复值。
*
异构对象不能插入
`TreeSet`
中,因为它不允许这样做。 它将在运行时引发
`classCastException`
。
*
`TreeSet`
类不保留元素的插入顺序,但是元素按其键排序。
*
`TreeSet`
中的元素以升序和排序顺序存储。
## Java 中`TreeSet`的局限性
...
...
@@ -25,29 +25,29 @@ Java TreeSet 类是一个基于 [TreeMap](https://docs.oracle.com/javase/8/docs/
## `TreeSet`中的构造方法
1.
TreeSet()
:构造一个新的空树集,并根据其元素的自然顺序进行排序
2.
TreeSet(Collection
<
?扩展 E
>
c)
:构造一个新树集,该树集包含指定集合中的元素,并根据其元素的自然顺序对其进行排序。
3.
TreeSet(Comparator
<
?super E
>
比较器)
:构造一个空树集,该树集根据指定的比较器排序。
4.
TreeSet(SortedSet
<
E
>
s)
:构造一个与指定集合完全相同的新树集,包括元素的顺序。
1.
`TreeSet()`
:构造一个新的空树集,并根据其元素的自然顺序进行排序
2.
`TreeSet(Collection<? extends E> c)`
:构造一个新树集,该树集包含指定集合中的元素,并根据其元素的自然顺序对其进行排序。
3.
`TreeSet(Comparator<? super E> comparator)`
:构造一个空树集,该树集根据指定的比较器排序。
4.
`TreeSet(SortedSet<E> s)`
:构造一个与指定集合完全相同的新树集,包括元素的顺序。
## `TreeSet`中的方法
1.
void add(Object o):根据 TreeSet
中的某些排序顺序添加指定的元素。 不会添加重复项。
2.
void clear()
:从树集中删除所有元素。
3.
boolean contains(Object o):如果树集中存在给定元素,则返回 true,否则返回 false
。
4.
对象 first()
:返回树集中的第一个元素。
5.
Object last()
:返回树集中的最后一个元素。
6.
boolean isEmpty():如果树集不包含任何元素,则返回 true,否则返回 false
。
7.
Object clone()
:返回树集的浅表副本。
8.
int size()
:返回树集中的元素数量。
9.
Iterator iterator()
:返回用于迭代树集元素的迭代器。
10.
Comparator 比较器():返回用于对 TreeSet 中的元素进行排序的 Comparator
。
1.
`void add(Object o)`
:根据
`TreeSet`
中的某些排序顺序添加指定的元素。 不会添加重复项。
2.
`void clear()`
:从树集中删除所有元素。
3.
`boolean contains(Object o)`
:如果树集中存在给定元素,则返回
`true`
,否则返回
`false`
。
4.
`Object first()`
:返回树集中的第一个元素。
5.
`Object last()`
:返回树集中的最后一个元素。
6.
`boolean isEmpty()`
:如果树集不包含任何元素,则返回
`true`
,否则返回
`false`
。
7.
`Object clone()`
:返回树集的浅表副本。
8.
`int size()`
:返回树集中的元素数量。
9.
`Iterator iterator()`
:返回用于迭代树集元素的迭代器。
10.
`Comparator comparator()`
:返回用于对
`TreeSet`
中的元素进行排序的
`Comparator`
。
有关所有方法的文档,请访问
[
Oracle 官方文档页面
](
https://docs.oracle.com/javase/8/docs/api/?java/util/TreeSet.html
)
。
### 使用`add()`在`TreeSet`中添加元素
语法:
treeSet.add(对象 o)
语法:
`treeSet.add(Object o)`
```
java
import
java.io.*
;
...
...
@@ -77,9 +77,9 @@ TreeSet: [Elephant, Tiger, Lion]
语法:
treeSet.first()
`treeSet.first()`
treeSet.last()
`treeSet.last()`
```
java
import
java.io.*
;
...
...
@@ -111,7 +111,7 @@ The last element: Lion
### 使用`contains()`检查元素是否在树集中
语法:
treeSet.contains(对象元素)
语法:
`treeSet.contains(Object element)`
```
java
import
java.io.*
;
...
...
@@ -143,7 +143,7 @@ Is 'Lion' in the tree set? true
### 使用`remove()`从树集中删除一个元素
语法:
treeSet.remove(Object o)
语法:
`treeSet.remove(Object o)`
```
java
import
java.io.*
;
...
...
@@ -175,7 +175,7 @@ TreeSet: [Tiger]
### 使用`size()`获取树集中的元素数量
语法:
treeSet.size()
语法:
`treeSet.size()`
```
java
import
java.util.*
;
...
...
@@ -206,7 +206,7 @@ The size of the tree set is: 3
### 使用`isEmpty()`检查树集是否为空
语法:
treeSet.isEmpty()
语法:
`treeSet.isEmpty()`
```
java
import
java.util.*
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录