Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
java-training
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
jiewen.li
java-training
Commits
495c9649
Commit
495c9649
authored
Oct 30, 2018
by
jiewen.li
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add Tests
parent
4f9f399e
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
127 additions
and
2 deletions
+127
-2
README.MD
+46
-2
demo1/src/test/java/cn/freemud/demo/CollectionTests.java
+81
-0
No files found.
README.MD
View file @
495c9649
## 示例
## 示例
\ No newline at end of file
-
集合
对于 List ,关心的是顺序,它保证维护元素特定的顺序(允许有相同元素),使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在 List 中的位置,类似于数组下标)来访问 List 中的元素。
Collection //接口的接口 对象的集合
├ List //按进入先后有序保存 可重复
│ ├ LinkedList //接口实现类 链表 插入删除 没有同步 线程不安全
│ ├ ArrayList //接口实现类 数组 随机访问 没有同步 线程不安全
│ └ Vector //接口实现类 数组 同步 线程安全
│ └ Stack
└ Set // 子接口 仅接收一次,并做内部排序
├ HashSet
│ └ LinkedHashSet
└ TreeSet
-
字典
对于 Map ,最大的特点是键值映射,且为一一映射,键不能重复,值可以,所以是用键来索引值。 方法 put(Object key, Object value) 添加一个“值” ( 想要得东西 ) 和与“值”相关联的“键” (key) ( 使用它来查找 ) 。方法 get(Object key) 返回与给定“键”相关联的“值”。
Map 同样对每个元素保存一份,但这是基于 ” 键 ” 的, Map 也有内置的排序,因而不关心元素添加的顺序。如果添加元素的顺序对你很重要,应该使用 LinkedHashSet 或者 LinkedHashMap.
Map //接口 键值对的集合
├ HashTable //接口实现类 同步线程不安全
├ HashMap //接口实现类 没有同步 线程不安全
│ ├ LinkedHashMap
│ └ WeakHashMap
├ TreeMap
└ IdentifyHashMap
Collection 是对象集合, Collection 有两个子接口 List 和 Set,List 可以通过下标 (1,2..) 来取得值,值可以重复,而 Set 只能通过游标来取值,并且值是不能重复的
ArrayList , Vector , LinkedList 是 List 的实现类
ArrayList 是线程不安全的, Vector 是线程安全的,这两个类底层都是由数组实现的
LinkedList 是线程不安全的,底层是由链表实现的
Map 是键值对集合
HashTable 和 HashMap 是 Map 的实现类
HashTable 是线程安全的,不能存储 null 值
HashMap 不是线程安全的,可以存储 null 值
\ No newline at end of file
demo1/src/test/java/cn/freemud/demo/CollectionTests.java
0 → 100644
View file @
495c9649
package
cn
.
freemud
.
demo
;
import
cn.freemud.demo.po.User
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.serializer.JSONSerializer
;
import
com.google.common.collect.Iterators
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Sets
;
import
com.google.common.primitives.Longs
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
java.util.*
;
public
class
CollectionTests
{
@Test
public
void
TestList
(){
//LinkedList
LinkedList
<
User
>
userLinkedList
=
Lists
.
newLinkedList
();
User
zs
=
new
User
(
1L
,
"张三"
);
User
ls
=
new
User
(
2L
,
"李四"
);
User
ww
=
new
User
(
3L
,
"王五"
);
User
zl
=
new
User
(
4L
,
"郑六"
);
// LinkedList 可重复
userLinkedList
.
add
(
zs
);
userLinkedList
.
add
(
zs
);
userLinkedList
.
add
(
ls
);
userLinkedList
.
add
(
ww
);
userLinkedList
.
add
(
zl
);
Integer
i
=
0
;
for
(
Iterator
<
User
>
iter
=
userLinkedList
.
iterator
();
iter
.
hasNext
();){
User
currentUser
=
iter
.
next
();
System
.
out
.
printf
(
"index:%d,value:%s \r\n"
,
i
,
JSON
.
toJSONString
(
currentUser
));
i
++;
}
Assert
.
assertSame
(
userLinkedList
.
get
(
0
),
userLinkedList
.
get
(
1
));
// LinkedList 先后有序保存
userLinkedList
.
removeFirst
();
userLinkedList
.
removeLast
();
LinkedList
<
User
>
ckUsers
=
Lists
.
newLinkedList
();
ckUsers
.
add
(
zs
);
ckUsers
.
add
(
ls
);
ckUsers
.
add
(
ww
);
Assert
.
assertEquals
(
JSON
.
toJSONString
(
userLinkedList
),
JSON
.
toJSONString
(
ckUsers
));
ckUsers
.
add
(
zl
);
Assert
.
assertNotEquals
(
JSON
.
toJSONString
(
userLinkedList
),
JSON
.
toJSONString
(
ckUsers
));
//ArrayList
ArrayList
<
User
>
userArrayList
=
Lists
.
newArrayList
();
userArrayList
.
add
(
zs
);
User
ss
=
userArrayList
.
get
(
0
);
Assert
.
assertSame
(
zs
,
ss
);
//HashSet
HashSet
<
Long
>
userHashSet
=
Sets
.
newHashSet
();
// HashSet 自动去重,并内部排序
userHashSet
.
add
(
1L
);
userHashSet
.
add
(
2L
);
userHashSet
.
add
(
1L
);
System
.
out
.
println
(
JSON
.
toJSONString
(
userHashSet
));
Assert
.
assertEquals
(
JSON
.
toJSONString
(
userHashSet
),
"[1,2]"
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment