Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Coudy Hou
JavaGuide
提交
f103464b
J
JavaGuide
项目概览
Coudy Hou
/
JavaGuide
与 Fork 源项目一致
从无法访问的项目Fork
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
JavaGuide
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f103464b
编写于
3月 29, 2019
作者:
J
jiuban0513
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加Collections一个常见用法并且修改了一个错误输出结果。
上级
b2566fe1
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
66 addition
and
1 deletion
+66
-1
docs/java/Basis/Arrays,CollectionsCommonMethods.md
docs/java/Basis/Arrays,CollectionsCommonMethods.md
+66
-1
未找到文件。
docs/java/Basis/Arrays,CollectionsCommonMethods.md
浏览文件 @
f103464b
...
...
@@ -70,6 +70,11 @@ void rotate(List list, int distance)//旋转。当distance为正数时,将list
System
.
out
.
println
(
"Collections.shuffle(arrayList):"
);
System
.
out
.
println
(
arrayList
);
// void swap(List list, int i , int j),交换两个索引位置的元素
Collections
.
swap
(
arrayList
,
2
,
5
);
System
.
out
.
println
(
"Collections.swap(arrayList, 2, 5):"
);
System
.
out
.
println
(
arrayList
);
// 定制排序的用法
Collections
.
sort
(
arrayList
,
new
Comparator
<
Integer
>()
{
...
...
@@ -152,6 +157,66 @@ synchronizedMap(Map<K,V> m) //返回由指定映射支持的同步(线程安
synchronizedSet
(
Set
<
T
>
s
)
//返回指定 set 支持的同步(线程安全的)set。
```
### Collections还可以设置不可变集合,提供了如下三类方法:
```
java
emptyXxx
():
返回一个空的
、
不可变的集合对象
,
此处的集合既可以是List
,
也可以是Set
,
还可以是Map
。
singletonXxx
():
返回一个只包含指定对象
(
只有一个或一个元素
)
的不可变的集合对象
,
此处的集合可以是
:
List
,
Set
,
Map
。
unmodifiableXxx
():
返回指定集合对象的不可变视图
,
此处的集合可以是
:
List
,
Set
,
Map
。
上面三类方法的参数是原有的集合对象
,
返回值是该集合的
”
只读
“
版本
。
```
**示例代码:**
```
java
ArrayList
<
Integer
>
arrayList
=
new
ArrayList
<
Integer
>();
arrayList
.
add
(-
1
);
arrayList
.
add
(
3
);
arrayList
.
add
(
3
);
arrayList
.
add
(-
5
);
arrayList
.
add
(
7
);
arrayList
.
add
(
4
);
arrayList
.
add
(-
9
);
arrayList
.
add
(-
7
);
HashSet
<
Integer
>
integers1
=
new
HashSet
<>();
integers1
.
add
(
1
);
integers1
.
add
(
3
);
integers1
.
add
(
2
);
Map
scores
=
new
HashMap
();
scores
.
put
(
"语文"
,
80
);
scores
.
put
(
"Java"
,
82
);
//Collections.emptyXXX();创建一个空的、不可改变的XXX对象
List
<
Object
>
list
=
Collections
.
emptyList
();
System
.
out
.
println
(
list
);
//[]
Set
<
Object
>
objects
=
Collections
.
emptySet
();
System
.
out
.
println
(
objects
);
//[]
Map
<
Object
,
Object
>
objectObjectMap
=
Collections
.
emptyMap
();
System
.
out
.
println
(
objectObjectMap
);
//{}
//Collections.singletonXXX();
List
<
ArrayList
<
Integer
>>
arrayLists
=
Collections
.
singletonList
(
arrayList
);
System
.
out
.
println
(
arrayLists
);
//[[-1, 3, 3, -5, 7, 4, -9, -7]]
//创建一个只有一个元素,且不可改变的Set对象
Set
<
ArrayList
<
Integer
>>
singleton
=
Collections
.
singleton
(
arrayList
);
System
.
out
.
println
(
singleton
);
//[[-1, 3, 3, -5, 7, 4, -9, -7]]
Map
<
String
,
String
>
nihao
=
Collections
.
singletonMap
(
"1"
,
"nihao"
);
System
.
out
.
println
(
nihao
);
//{1=nihao}
//unmodifiableXXX();创建普通XXX对象对应的不可变版本
List
<
Integer
>
integers
=
Collections
.
unmodifiableList
(
arrayList
);
System
.
out
.
println
(
integers
);
//[-1, 3, 3, -5, 7, 4, -9, -7]
Set
<
Integer
>
integers2
=
Collections
.
unmodifiableSet
(
integers1
);
System
.
out
.
println
(
integers2
);
//[1, 2, 3]
Map
<
Object
,
Object
>
objectObjectMap2
=
Collections
.
unmodifiableMap
(
scores
);
System
.
out
.
println
(
objectObjectMap2
);
//{Java=82, 语文=80}
//添加出现异常:java.lang.UnsupportedOperationException
// list.add(1);
// arrayLists.add(arrayList);
// integers.add(1);
```
## Arrays类的常见操作
1.
排序 :
`sort()`
2.
查找 :
`binarySearch()`
...
...
@@ -296,7 +361,7 @@ System.out.println(Arrays.toString(strs));//[abcdeag, abcdefg, abcdehg]
int
[]
h
=
{
1
,
2
,
3
,
3
,
3
,
3
,
6
,
6
,
6
,
};
int
i
[]
=
Arrays
.
copyOf
(
h
,
6
);
System
.
out
.
println
(
"Arrays.copyOf(h, 6);:"
);
// 输出结果:
99
3333
// 输出结果:
12
3333
for
(
int
j
:
i
)
{
System
.
out
.
print
(
j
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录