Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
武汉红喜
whatsmars
提交
d18dbdef
W
whatsmars
项目概览
武汉红喜
/
whatsmars
通知
3
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
W
whatsmars
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
d18dbdef
编写于
8月 09, 2019
作者:
武汉红喜
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
java
上级
44792216
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
366 addition
and
0 deletion
+366
-0
whatsmars-common/src/test/java/org/hongxi/java/util/Java8Test.java
...-common/src/test/java/org/hongxi/java/util/Java8Test.java
+58
-0
whatsmars-common/src/test/java/org/hongxi/java/util/LambdaTests.java
...ommon/src/test/java/org/hongxi/java/util/LambdaTests.java
+70
-0
whatsmars-common/src/test/java/org/hongxi/java/util/function/CollectionFactory.java
...java/org/hongxi/java/util/function/CollectionFactory.java
+13
-0
whatsmars-common/src/test/java/org/hongxi/java/util/function/MyCollection.java
...test/java/org/hongxi/java/util/function/MyCollection.java
+13
-0
whatsmars-common/src/test/java/org/hongxi/java/util/function/MyList.java
...n/src/test/java/org/hongxi/java/util/function/MyList.java
+11
-0
whatsmars-common/src/test/java/org/hongxi/java/util/function/NewList.java
.../src/test/java/org/hongxi/java/util/function/NewList.java
+16
-0
whatsmars-common/src/test/java/org/hongxi/java/util/function/Test.java
...mon/src/test/java/org/hongxi/java/util/function/Test.java
+14
-0
whatsmars-common/src/test/java/org/hongxi/java/util/stream/Status.java
...mon/src/test/java/org/hongxi/java/util/stream/Status.java
+8
-0
whatsmars-common/src/test/java/org/hongxi/java/util/stream/StreamTest.java
...src/test/java/org/hongxi/java/util/stream/StreamTest.java
+24
-0
whatsmars-common/src/test/java/org/hongxi/java/util/stream/StreamTests.java
...rc/test/java/org/hongxi/java/util/stream/StreamTests.java
+51
-0
whatsmars-common/src/test/java/org/hongxi/java/util/stream/Task.java
...ommon/src/test/java/org/hongxi/java/util/stream/Task.java
+38
-0
whatsmars-common/src/test/java/org/hongxi/java/util/stream/Test.java
...ommon/src/test/java/org/hongxi/java/util/stream/Test.java
+50
-0
未找到文件。
whatsmars-common/src/test/java/org/hongxi/java/util/Java8Test.java
0 → 100644
浏览文件 @
d18dbdef
package
org.hongxi.java.util
;
import
org.junit.Test
;
import
javax.script.ScriptEngine
;
import
javax.script.ScriptEngineManager
;
import
javax.script.ScriptException
;
import
java.nio.charset.StandardCharsets
;
import
java.time.*
;
import
java.util.Base64
;
public
class
Java8Test
{
@Test
public
void
join
()
{
String
[]
countries
=
{
"China"
,
"America"
,
"Japan"
};
System
.
out
.
println
(
String
.
join
(
","
,
countries
));
}
@Test
public
void
base64
()
{
String
text
=
"Base64 finally in Java 8!"
;
String
encoded
=
Base64
.
getEncoder
()
.
encodeToString
(
text
.
getBytes
(
StandardCharsets
.
UTF_8
));
System
.
out
.
println
(
encoded
);
String
decoded
=
new
String
(
Base64
.
getDecoder
().
decode
(
encoded
),
StandardCharsets
.
UTF_8
);
System
.
out
.
println
(
decoded
);
}
@Test
public
void
script
()
throws
ScriptException
{
ScriptEngineManager
manager
=
new
ScriptEngineManager
();
ScriptEngine
engine
=
manager
.
getEngineByName
(
"JavaScript"
);
System
.
out
.
println
(
engine
.
getClass
().
getName
());
System
.
out
.
println
(
"Result:"
+
engine
.
eval
(
"function f() { return 1; }; f() + 1;"
));
}
@Test
public
void
clock
()
{
Clock
clock
=
Clock
.
systemUTC
();
System
.
out
.
println
(
clock
.
instant
());
System
.
out
.
println
(
clock
.
millis
());
LocalDate
localDate
=
LocalDate
.
now
();
// LocalDate.now(clock)
System
.
out
.
println
(
localDate
);
LocalTime
localTime
=
LocalTime
.
now
();
// LocalTime.now(clock)
System
.
out
.
println
(
localTime
);
LocalDateTime
localDateTime
=
LocalDateTime
.
now
();
// LocalDateTime.now(clock)
System
.
out
.
println
(
localDateTime
);
LocalDateTime
from
=
LocalDateTime
.
of
(
2014
,
Month
.
APRIL
,
16
,
0
,
0
,
0
);
LocalDateTime
to
=
LocalDateTime
.
of
(
2015
,
Month
.
APRIL
,
16
,
23
,
59
,
59
);
Duration
duration
=
Duration
.
between
(
from
,
to
);
System
.
out
.
println
(
"Duration in days: "
+
duration
.
toDays
());
System
.
out
.
println
(
"Duration in hours: "
+
duration
.
toHours
());
}
}
whatsmars-common/src/test/java/org/hongxi/java/util/LambdaTests.java
0 → 100644
浏览文件 @
d18dbdef
package
org.hongxi.java.util
;
import
org.junit.Test
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.concurrent.ThreadLocalRandom
;
/**
* Created by javahongxi on 2018/1/2.
*/
public
class
LambdaTests
{
@Test
public
void
t
()
{
new
Thread
(()
->
System
.
out
.
println
(
"Hi, I am lambda!"
)).
start
();
System
.
out
.
println
(
"main thread ..."
);
}
@Test
public
void
t2
()
{
Arrays
.
asList
(
"a"
,
"b"
,
"c"
).
forEach
(
e
->
System
.
out
.
println
(
e
));
}
@Test
public
void
t3
()
{
Arrays
.
asList
(
"a"
,
"b"
,
"c"
).
forEach
(
e
->
{
System
.
out
.
println
(
System
.
currentTimeMillis
());
System
.
out
.
println
(
e
);
});
}
@Test
public
void
t4
()
{
List
<
String
>
names
=
new
ArrayList
<>();
names
.
add
(
"d"
);
names
.
add
(
"a"
);
names
.
add
(
"ax"
);
names
.
add
(
"bbb"
);
names
.
sort
(
String:
:
compareTo
);
System
.
out
.
println
(
names
);
}
@Test
public
void
t5
()
{
Optional
<
String
>
fullName
=
Optional
.
ofNullable
(
null
);
System
.
out
.
println
(
"Full Name is set? "
+
fullName
.
isPresent
());
System
.
out
.
println
(
"Full Name: "
+
fullName
.
orElseGet
(()
->
"[none]"
));
System
.
out
.
println
(
fullName
.
map
(
s
->
"Hey "
+
s
+
"!"
).
orElse
(
"Hey Stranger!"
));
}
@Test
public
void
t6
()
{
long
[]
arr
=
new
long
[
20000
];
Arrays
.
parallelSetAll
(
arr
,
index
->
ThreadLocalRandom
.
current
().
nextInt
(
1000000
));
Arrays
.
stream
(
arr
).
limit
(
10
).
forEach
(
i
->
System
.
out
.
print
(
i
+
" "
));
System
.
out
.
println
();
Arrays
.
parallelSort
(
arr
);
Arrays
.
stream
(
arr
).
limit
(
10
).
forEach
(
i
->
System
.
out
.
print
(
i
+
" "
));
System
.
out
.
println
();
}
}
whatsmars-common/src/test/java/org/hongxi/java/util/function/CollectionFactory.java
0 → 100644
浏览文件 @
d18dbdef
package
org.hongxi.java.util.function
;
import
java.util.function.Supplier
;
/**
* Created by shenhongxi on 2018/1/11.
*/
public
interface
CollectionFactory
{
static
MyCollection
create
(
Supplier
<
MyCollection
>
supplier
)
{
return
supplier
.
get
();
}
}
whatsmars-common/src/test/java/org/hongxi/java/util/function/MyCollection.java
0 → 100644
浏览文件 @
d18dbdef
package
org.hongxi.java.util.function
;
/**
* Created by shenhongxi on 2018/1/11.
*/
public
interface
MyCollection
{
int
size
();
default
String
notRequired
()
{
return
"Default implementation"
;
}
}
whatsmars-common/src/test/java/org/hongxi/java/util/function/MyList.java
0 → 100644
浏览文件 @
d18dbdef
package
org.hongxi.java.util.function
;
/**
* Created by shenhongxi on 2018/1/11.
*/
public
class
MyList
implements
MyCollection
{
@Override
public
int
size
()
{
return
0
;
}
}
whatsmars-common/src/test/java/org/hongxi/java/util/function/NewList.java
0 → 100644
浏览文件 @
d18dbdef
package
org.hongxi.java.util.function
;
/**
* Created by shenhongxi on 2018/1/11.
*/
public
class
NewList
implements
MyCollection
{
@Override
public
int
size
()
{
return
0
;
}
@Override
public
String
notRequired
()
{
return
"Overridden implementation"
;
}
}
whatsmars-common/src/test/java/org/hongxi/java/util/function/Test.java
0 → 100644
浏览文件 @
d18dbdef
package
org.hongxi.java.util.function
;
/**
* Created by shenhongxi on 2018/1/11.
*/
public
class
Test
{
public
static
void
main
(
String
[]
args
)
{
MyCollection
collection
=
CollectionFactory
.
create
(
MyList:
:
new
);
System
.
out
.
println
(
collection
.
notRequired
());
collection
=
CollectionFactory
.
create
(
NewList:
:
new
);
System
.
out
.
println
(
collection
.
notRequired
());
}
}
whatsmars-common/src/test/java/org/hongxi/java/util/stream/Status.java
0 → 100644
浏览文件 @
d18dbdef
package
org.hongxi.java.util.stream
;
/**
* Created by shenhongxi on 2018/1/11.
*/
public
enum
Status
{
OPEN
,
CLOSED
}
whatsmars-common/src/test/java/org/hongxi/java/util/stream/StreamTest.java
0 → 100644
浏览文件 @
d18dbdef
package
org.hongxi.java.util.stream
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.concurrent.CopyOnWriteArrayList
;
import
java.util.stream.IntStream
;
/**
* Created by shenhongxi on 2019/4/10.
*/
public
class
StreamTest
{
public
static
void
main
(
String
[]
args
)
{
System
.
setProperty
(
"java.util.concurrent.ForkJoinPool.common.parallelism"
,
"10"
);
CopyOnWriteArrayList
<
Integer
>
numbers
=
new
CopyOnWriteArrayList
<>();
IntStream
.
range
(
0
,
10000
).
parallel
().
forEach
(
numbers:
:
add
);
System
.
out
.
println
(
numbers
.
size
()
==
10000
);
// 下面的操作会报错 ArrayIndexOutOfBoundsException
List
<
Integer
>
list2
=
new
ArrayList
<>();
numbers
.
parallelStream
().
forEach
(
list2:
:
add
);
System
.
out
.
println
(
list2
.
size
()
==
numbers
.
size
());
}
}
whatsmars-common/src/test/java/org/hongxi/java/util/stream/StreamTests.java
0 → 100644
浏览文件 @
d18dbdef
package
org.hongxi.java.util.stream
;
import
org.junit.Test
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.CopyOnWriteArrayList
;
import
java.util.stream.Collectors
;
/**
* Created by shenhongxi on 2019/4/14.
*/
public
class
StreamTests
{
@Test
public
void
t
()
{
List
<
String
>
words
=
new
ArrayList
<>();
words
.
add
(
"a"
);
words
.
add
(
"b"
);
words
.
add
(
"c"
);
words
=
words
.
stream
().
filter
(
e
->
e
.
equals
(
"d"
)).
collect
(
Collectors
.
toList
());
assert
words
.
isEmpty
();
}
@Test
public
void
t2
()
{
List
<
String
>
words
=
new
ArrayList
<>();
words
.
add
(
"a"
);
words
.
add
(
"b"
);
words
.
add
(
"c"
);
CopyOnWriteArrayList
<
String
>
result
=
new
CopyOnWriteArrayList
<>();
words
.
parallelStream
().
forEach
(
e
->
result
.
add
(
e
.
toUpperCase
()));
assert
result
.
size
()
==
words
.
size
();
}
@Test
public
void
t3
()
{
List
<
String
>
words
=
new
ArrayList
<>();
words
.
add
(
"a"
);
words
.
add
(
"b"
);
words
.
add
(
"c"
);
words
.
add
(
"d"
);
words
.
add
(
"e"
);
words
.
add
(
"f"
);
words
.
add
(
"g"
);
words
.
add
(
"h"
);
words
.
add
(
"i"
);
words
.
add
(
"j"
);
words
.
add
(
"k"
);
words
.
add
(
"l"
);
words
.
add
(
"m"
);
words
.
add
(
"n"
);
words
.
add
(
"o"
);
words
.
add
(
"p"
);
words
.
add
(
"q"
);
words
.
add
(
"r"
);
words
.
add
(
"s"
);
words
.
add
(
"t"
);
words
.
add
(
"u"
);
words
.
add
(
"v"
);
words
.
add
(
"w"
);
words
.
add
(
"x"
);
words
.
add
(
"y"
);
words
.
add
(
"z"
);
Map
<
String
,
String
>
result
=
words
.
parallelStream
()
.
collect
(
HashMap:
:
new
,
(
m
,
word
)
->
m
.
put
(
word
,
word
.
toUpperCase
()),
HashMap:
:
putAll
);
System
.
out
.
println
(
result
);
assert
result
.
size
()
==
words
.
size
();
}
}
whatsmars-common/src/test/java/org/hongxi/java/util/stream/Task.java
0 → 100644
浏览文件 @
d18dbdef
package
org.hongxi.java.util.stream
;
/**
* Created by shenhongxi on 2018/1/11.
*/
public
class
Task
{
private
Status
status
;
private
int
point
;
public
Task
()
{
}
public
Task
(
Status
status
,
int
point
)
{
this
.
status
=
status
;
this
.
point
=
point
;
}
public
Status
getStatus
()
{
return
status
;
}
public
void
setStatus
(
Status
status
)
{
this
.
status
=
status
;
}
public
int
getPoint
()
{
return
point
;
}
public
void
setPoint
(
int
point
)
{
this
.
point
=
point
;
}
@Override
public
String
toString
()
{
return
String
.
format
(
"(%s, %d)"
,
status
,
point
);
}
}
whatsmars-common/src/test/java/org/hongxi/java/util/stream/Test.java
0 → 100644
浏览文件 @
d18dbdef
package
org.hongxi.java.util.stream
;
import
java.util.Arrays
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.Map
;
import
static
java
.
util
.
stream
.
Collectors
.*;
/**
* Created by shenhongxi on 2018/1/11.
*/
public
class
Test
{
public
static
void
main
(
String
[]
args
)
{
Collection
<
Task
>
tasks
=
Arrays
.
asList
(
new
Task
(
Status
.
OPEN
,
5
),
new
Task
(
Status
.
OPEN
,
13
),
new
Task
(
Status
.
CLOSED
,
8
)
);
int
openTaskPoints
=
tasks
.
stream
()
.
filter
(
task
->
task
.
getStatus
()
==
Status
.
OPEN
)
.
mapToInt
(
Task:
:
getPoint
)
.
sum
();
System
.
out
.
println
(
openTaskPoints
);
final
int
totalPoints
=
tasks
.
stream
()
.
parallel
()
.
map
(
Task:
:
getPoint
)
.
reduce
(
0
,
Integer:
:
sum
);
System
.
out
.
println
(
totalPoints
);
Map
<
Status
,
List
<
Task
>>
map
=
tasks
.
stream
().
collect
(
groupingBy
(
Task:
:
getStatus
));
System
.
out
.
println
(
map
);
Map
<
Status
,
Long
>
map2
=
tasks
.
stream
().
collect
(
groupingBy
(
Task:
:
getStatus
,
counting
()));
System
.
out
.
println
(
map2
);
Map
<
Boolean
,
List
<
Task
>>
map3
=
tasks
.
stream
().
collect
(
partitioningBy
(
e
->
e
.
getPoint
()
>
7
));
System
.
out
.
println
(
map3
);
// Map<String, Product> productMap = products.stream().collect(toMap(Product::getSku, identity(), (key1, key2) -> key2));
Collection
<
String
>
result
=
tasks
.
stream
()
.
mapToInt
(
Task:
:
getPoint
)
.
mapToDouble
(
point
->
point
*
100
/
totalPoints
)
.
mapToObj
(
percentage
->
(
int
)
percentage
+
"%"
)
.
collect
(
toList
());
System
.
out
.
println
(
result
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录