Содержание
Прошло уже почти два года, как была выпущена Java 8 , март 2014 года. Я уверен, что большинство компаний все еще используют Java 7 с Apache Tomcat в своей производственной среде, но в последнее время она набирает обороты. Поскольку большинство компаний все еще используют Java 7, существует немало незаметных для мира функций.
Некоторое время назад мы написали подробную статью о Java 8 Stream API и Lambda Expression. В этом уроке мы рассмотрим java.time.temporal.TemporalAdjusters а также flatMap() пример.
TemporalObjects
Что tempoalObjects в Java? Это интерфейс уровня структуры, имеющий дело с объектом даты и времени, главным образом read-only objects который обеспечивает доступ в generic manner ,
TemporalAdjusters
TemporalAdjusters — это ключевой инструмент для изменения временных объектов. Есть два способа использовать TemporalAdjuster.
- Вызовите метод на интерфейсе напрямую
- использовать Temporal.with (TemporalAdjuster)
Stream.flatMap ()
Джава map а также flatMap может применяться к Stream и они оба возвращают Stream , Какая разница?
mapоперация производит одно выходное значение для каждого входного значенияflatMapоперация выдает произвольное число (ноль или более) значений для каждого входного значения
Давайте начнем с учебника
- Создать класс CrunchifyJava8TemporalAdjustersAndFlatMap.java
- Мы создадим два простых метода
- crunchifyStreamFlatMapExample
- crunchifyTemporalExample
- Все детали предоставлены в каждом методе как комментарий
- Запустите программу и проверьте результат
- убедитесь, что вы установили JDK 8 в среде Eclipse
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
пакет crunchify. ком . учебные пособия ;
Импортировать Java. время. DayOfWeek ;
Импортировать Java. время. LocalDateTime ;
Импортировать Java. время. временный . TemporalAdjusters ;
Импортировать Java. Util. ArrayList ;
Импортировать Java. Util. HashSet ;
Импортировать Java. Util. Список ;
Импортировать Java. Util. Установить ;
Импортировать Java. Util. поток. Коллекционеры ;
/ **
* @author Crunchify.com
*
* /
общественности учебный класс CrunchifyJava8TemporalAdjustersAndFlatMap {
общественности статический недействительным main ( Строка [ ] аргументы ) {
// Stream.flatMap () пример
crunchifyStreamFlatMapExample ( ) ;
// Пример TemporalAdjuster
crunchifyTemporalExample ( ) ;
}
общественности статический недействительным crunchifyStreamFlatMapExample ( ) {
List
CrunchifyCompany gName знак равно новый CrunchifyCompany ( Google ) ;
gName . добавить ( Gmail ) ;
gName . добавить ( Документы ) ;
gName . добавить ( Google Apps ) ;
CrunchifyCompany yName знак равно новый CrunchifyCompany ( Yahoo ) ;
yName. добавить ( YMail ) ;
yName. add ( «Сайты Yahoo» ) ;
companyList . добавить ( gName ) ;
companyList . добавить ( yName ) ;
// Возвращает поток, состоящий из результатов замены каждого элемента этого потока содержимым сопоставленного
// поток создается путем применения предоставленной функции отображения к каждому элементу
log ( «Вот список всех продуктов компании:» ) ;
Список
, flatMap ( элемент — > элемент. getProducts ( ) . поток ( ) ) . собирать ( Collectors . toList ( ) ) ;
log ( crunchifyList . toString ( ) ) ;
}
частный статический недействительным log ( Строка сообщение ) {
Система. вне. println ( сообщение ) ;
}
статический учебный класс CrunchifyCompany {
частный строка companyName ;
частный Установить
общественности CrunchifyCompany ( String companyName ) {
это. setCompanyName (COMPANYNAME);
это. товары знак равно новый HashSet < > ( ) ;
}
общественности недействительным добавить ( строка животное ) {
это. продукты . добавить ( животное ) ;
}
общественности Установить
вернуть продукты ;
}
общественности строка getCompanyName ( ) {
вернуть companyName ;
}
общественности недействительным setCompanyName ( String companyName ) {
это. название компании знак равно companyName ;
}
}
общественности статический недействительным crunchifyTemporalExample ( ) {
// Дата-время без часового пояса в календарной системе ISO-8601
// String time = LocalDateTime.now (). Format (DateTimeFormatter.ISO_OFFSET_DATE_TIME);
// Давайте вернемся currentitme — 1 год
LocalDateTime crunchifyTime знак равно LocalDateTime . сейчас ( ) . minusYears ( 1 ) ;
// TemporalAdjusters: Настройщики являются ключевым инструментом для изменения временных объектов
log ( / n- получить 1-й день месяца: + crunchifyTime . with ( TemporalAdjusters . firstDayOfMonth ( ) ) ) ;
// Возвращает настройку последний день месяца
log ( — получить последний день месяца: + crunchifyTime . with ( TemporalAdjusters . lastDayOfMonth ( ) ) ) ;
// Возвращает настройку «первый день года»
log ( — получить 1-й день года: + crunchifyTime . with ( TemporalAdjusters . firstDayOfYear ( ) ) ) ;
// Возвращает настройку следующего дня недели
log ( — получить следующий день недели:
+ crunchifyTime . with ( TemporalAdjusters . next ( DayOfWeek . WEDNESDAY ) ) ) ;
// Возвращает настройку последний день года
log ( — получить последний день года: + crunchifyTime . with ( TemporalAdjusters . lastDayOfYear ( ) ) ) ;
// Возвращает последний в месяце регулятор
log ( — получить последний день недели:
+ crunchifyTime . with ( TemporalAdjusters . lastInMonth ( DayOfWeek . FRIDAY ) ) ) ;
}
}
|
Выход:
|
1
2
3
4
5
6
7
8
9
|
Вот Список всего списка продукции компании:
[ Gmail , Документы , Google Apps , YMail , Сайты Yahoo ]
— получить первый День Месяц: 2015 — 01 — 01T12 : 07 : 11.980
— получить Последний день месяца: 2015 — 01 — 31T12 : 07 : 11.980
— получить первый День года: 2015 — 01 — 01T12 : 07 : 11.980
— получить следующий день недели: 2015 — 01 — 14T12 : 07 : 11.980
— получить последний день года: 2015 — 12 — 31T12 : 07 : 11.980
— получить последний день недели: 2015 — 01 — 30T12 : 07 : 11.980
|
0.00 (0%) 0 votes








