Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
caopu16
whatsmars
提交
c2bc4073
W
whatsmars
项目概览
caopu16
/
whatsmars
与 Fork 源项目一致
Fork自
武汉红喜 / whatsmars
通知
1
Star
0
Fork
0
代码
文件
提交
分支
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,发现更多精彩内容 >>
提交
c2bc4073
编写于
1月 13, 2018
作者:
武汉红喜
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
lambda
上级
d289e0d9
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
256 addition
and
3 deletion
+256
-3
whatsmars-javase-example/src/main/java/org/hongxi/whatsmars/base/lambda/collection/CollectionFactory.java
...i/whatsmars/base/lambda/collection/CollectionFactory.java
+13
-0
whatsmars-javase-example/src/main/java/org/hongxi/whatsmars/base/lambda/collection/MyCollection.java
...hongxi/whatsmars/base/lambda/collection/MyCollection.java
+13
-0
whatsmars-javase-example/src/main/java/org/hongxi/whatsmars/base/lambda/collection/MyList.java
...a/org/hongxi/whatsmars/base/lambda/collection/MyList.java
+11
-0
whatsmars-javase-example/src/main/java/org/hongxi/whatsmars/base/lambda/collection/NewList.java
.../org/hongxi/whatsmars/base/lambda/collection/NewList.java
+16
-0
whatsmars-javase-example/src/main/java/org/hongxi/whatsmars/base/lambda/collection/Test.java
...ava/org/hongxi/whatsmars/base/lambda/collection/Test.java
+14
-0
whatsmars-javase-example/src/main/java/org/hongxi/whatsmars/base/lambda/stream/Status.java
.../java/org/hongxi/whatsmars/base/lambda/stream/Status.java
+8
-0
whatsmars-javase-example/src/main/java/org/hongxi/whatsmars/base/lambda/stream/Task.java
...in/java/org/hongxi/whatsmars/base/lambda/stream/Task.java
+38
-0
whatsmars-javase-example/src/main/java/org/hongxi/whatsmars/base/lambda/stream/Test.java
...in/java/org/hongxi/whatsmars/base/lambda/stream/Test.java
+44
-0
whatsmars-javase-example/src/test/java/org/hongxi/whatsmars/base/lambda/LambdaTest.java
...est/java/org/hongxi/whatsmars/base/lambda/LambdaTest.java
+99
-3
未找到文件。
whatsmars-javase-example/src/main/java/org/hongxi/whatsmars/base/lambda/collection/CollectionFactory.java
0 → 100644
浏览文件 @
c2bc4073
package
org.hongxi.whatsmars.base.lambda.collection
;
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-javase-example/src/main/java/org/hongxi/whatsmars/base/lambda/collection/MyCollection.java
0 → 100644
浏览文件 @
c2bc4073
package
org.hongxi.whatsmars.base.lambda.collection
;
/**
* Created by shenhongxi on 2018/1/11.
*/
public
interface
MyCollection
{
int
size
();
default
String
notRequired
()
{
return
"Default implementation"
;
}
}
whatsmars-javase-example/src/main/java/org/hongxi/whatsmars/base/lambda/collection/MyList.java
0 → 100644
浏览文件 @
c2bc4073
package
org.hongxi.whatsmars.base.lambda.collection
;
/**
* Created by shenhongxi on 2018/1/11.
*/
public
class
MyList
implements
MyCollection
{
@Override
public
int
size
()
{
return
0
;
}
}
whatsmars-javase-example/src/main/java/org/hongxi/whatsmars/base/lambda/collection/NewList.java
0 → 100644
浏览文件 @
c2bc4073
package
org.hongxi.whatsmars.base.lambda.collection
;
/**
* 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-javase-example/src/main/java/org/hongxi/whatsmars/base/lambda/collection/Test.java
0 → 100644
浏览文件 @
c2bc4073
package
org.hongxi.whatsmars.base.lambda.collection
;
/**
* 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-javase-example/src/main/java/org/hongxi/whatsmars/base/lambda/stream/Status.java
0 → 100644
浏览文件 @
c2bc4073
package
org.hongxi.whatsmars.base.lambda.stream
;
/**
* Created by shenhongxi on 2018/1/11.
*/
public
enum
Status
{
OPEN
,
CLOSED
}
whatsmars-javase-example/src/main/java/org/hongxi/whatsmars/base/lambda/stream/Task.java
0 → 100644
浏览文件 @
c2bc4073
package
org.hongxi.whatsmars.base.lambda.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-javase-example/src/main/java/org/hongxi/whatsmars/base/lambda/stream/Test.java
0 → 100644
浏览文件 @
c2bc4073
package
org.hongxi.whatsmars.base.lambda.stream
;
import
java.util.Arrays
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.Map
;
import
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
(
Collectors
.
groupingBy
(
Task:
:
getStatus
));
System
.
out
.
println
(
map
);
Collection
<
String
>
result
=
tasks
.
stream
()
.
mapToInt
(
Task:
:
getPoint
)
.
mapToDouble
(
point
->
point
*
100
/
totalPoints
)
.
mapToObj
(
percentage
->
(
int
)
percentage
+
"%"
)
.
collect
(
Collectors
.
toList
());
System
.
out
.
println
(
result
);
}
}
whatsmars-javase-example/src/test/java/org/hongxi/whatsmars/base/lambda/LambdaTest.java
浏览文件 @
c2bc4073
...
...
@@ -2,13 +2,109 @@ package org.hongxi.whatsmars.base.lambda;
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.*
;
import
java.util.concurrent.ThreadLocalRandom
;
/**
* Created by javahongxi on 201
7/6/24
.
* Created by javahongxi on 201
8/1/2
.
*/
public
class
LambdaTest
{
@Test
public
void
t1
()
{
new
Thread
(()
->
System
.
out
.
println
(
"hi,lambda!"
)).
start
();
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
();
}
@Test
public
void
t7
()
{
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
t8
()
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
t9
()
{
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
());
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录