자바 8 연습
13704 단어 Java
package stream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ListUtil {
public static List getTenOfNumberList() {
List list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(5);
list.add(7);
list.add(4);
list.add(6);
list.add(9);
list.add(8);
list.add(0);
return list;
}
public static List getRepeatNumberList() {
List list = Arrays.asList(1, 2, 1, 3, 3, 2, 4);
return list;
}
}
package stream;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import static java.util.stream.Collectors.toList;
import java.util.Comparator;
public class Distinct {
public static void main(String [] args) {
List list = ListUtil.getRepeatNumberList();
list = list.stream()
.filter((num) -> num % 2 == 0)
.distinct()
.collect(toList());
System.out.println(list);
//
list.stream().limit(1).forEach(System.out :: println);
//
list.stream().skip(1).forEach(System.out :: println);
// ( )
boolean allMatch = list.stream().allMatch((i) -> i % 2 == 0);
System.out.println(allMatch);
// ( )
boolean anyMath = list.stream().anyMatch((i) -> i % 2 == 0);
System.out.println(anyMath);
// , ,
Optional oneNum = list.stream().map((x) -> x * x * x ).findFirst();
//
boolean isNull = oneNum.isPresent();
System.out.println("is not null : " + isNull);
System.out.println(oneNum.get());
// , , map flatmap
// list.stream().reduce(0,(a,b) -> a + b) 0 map reduce
Integer intValue = list.stream().reduce(0,Integer :: sum);
System.out.println(intValue);
//
Comparator comparator = (x, y) -> x.compareTo(y);
list.stream().sorted(comparator.reversed()).forEach(System.out::println);
}
}
package stream;
import java.util.List;
import static java.util.stream.Collectors.toList;
public class Fillter {
public static void main(String [] args) {
List list = ListUtil.getTenOfNumberList();
list = list.stream()
.filter((i) -> i > 5)
.collect(toList());
System.out.println(list);
}
}
package stream2;
import java.io.Serializable;
/**
*
* @author ShiXiaoQiang
*
*/
public class People implements Serializable{
private static final long serialVersionUID = 1L;
/**
*
*/
private int age;
/**
*
*/
private String name;
/**
* true false
*/
private boolean sex;
public People() {
}
public People (String name, int age, boolean sex) {
this.age = age;
this.name = name;
this.sex = sex;
}
public int getAge() {
return age;
}
public People setAge(int age) {
this.age = age;
return this;
}
public String getName() {
return name;
}
public People setName(String name) {
this.name = name;
return this;
}
public boolean isSex() {
return sex;
}
public People setSex(boolean sex) {
this.sex = sex;
return this;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
People other = (People) obj;
if (age != other.age)
return false;
return true;
}
@Override
public String toString() {
return "People [age=" + age + ", name=" + name + ", sex=" + sex + "]";
}
}
package lambda;
import com.google.common.collect.Lists;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class DemoTest {
private List peopleList = Lists.newArrayList();
@Before
public void before() {
People people = new People();
people.setAge(10);
people.setName("xiaoming");
People people1 = new People();
people1.setAge(15);
people1.setName("xiaowang");
People people2 = new People();
people2.setName("xiaowang");
people2.setAge(14);
People people3 = new People();
people3.setAge(11);
people3.setName("xiaoming");
peopleList.add(people);
peopleList.add(people1);
peopleList.add(people2);
peopleList.add(people3);
}
@Test
public void test() {
// mergeFunction mergeFunction , key , map
Map map = peopleList.stream()
.collect(Collectors.toMap(People :: getName, p -> p, (oldP, newP) -> oldP));
System.out.println(map);
}
}
package stream2;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import static java.util.stream.Collectors.*;
/**
*
* @author ShiXiaoQiang
*
*/
public class CollectorDemo {
public static void main(String[] args) {
//
List peoples = Arrays.asList(new People(" ", 10, true),
new People(" ", 10, true), new People(" ", 18, true),
new People(" ", 18, false), new People(" ", 24, true),
new People(" ", 24, true), new People(" ", 23, false),
new People(" ", 27, true), new People(" ", 65, false));
// 1.
long count = peoples.stream().collect(Collectors.counting());
peoples.stream().count();
peoples.size();
System.out.println(count + " ");
// ----------------------------------------------
// 2. ( / )
// 2.1
Comparator peopleComparator
= Comparator.comparingInt(People :: getAge);
// 2.2
Optional pMax = peoples.stream().collect(maxBy(peopleComparator));
System.out.println(pMax.get());
Optional pMin = peoples.stream().collect(minBy(peopleComparator));
System.out.println(pMin);
//
System.out.println(peoples.stream().min(peopleComparator));
// 3.
int ageSum = peoples.stream().collect(summingInt(People :: getAge));
System.out.println(" : " + ageSum);
//
ageSum = peoples.stream().map(People :: getAge).reduce(0, Integer :: sum);
//
ageSum = peoples.stream().collect(reducing(0, People :: getAge, Integer :: sum));
System.out.println(" : " + ageSum);
//
double ageAvg = peoples.stream().collect(averagingInt(People :: getAge));
System.out.println(" :" + ageAvg);
// 4.
//
String nameJoin = peoples.stream().map(People :: getName).map((str) -> str.concat(",")).collect(joining());
nameJoin = peoples.stream().map(People :: getName).collect(joining(","));
System.out.println(nameJoin.substring(0, nameJoin.lastIndexOf(",")));
// 5. ,
//
Map> peopleMap= peoples.stream().collect(groupingBy(People :: isSex));
System.out.println(peopleMap);
// , ,
Map>> pGMap = peoples.stream().collect(
groupingBy(People :: isSex,
groupingBy((People p) -> {
if ( p.getAge() < 30)
{
return "young";
}
else
{
return "old";
}
}
)
)
);
System.out.println(pGMap);
//groupingBy
Map peopleMapOfCount = peoples.stream()
.collect(groupingBy(People :: isSex, counting()));
System.out.println(peopleMapOfCount);
// 5.1
Map> peopleInver = peoples.stream().collect(partitioningBy(People :: isSex));
System.out.println(peopleInver);
}
}
2. 시간
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.Period;
import java.time.temporal.TemporalAdjusters;
public class DurationAndPeriodDemo {
public static void main(String [] args) {
LocalDateTime ldtStart = LocalDateTime.of(2018, 1, 1, 1, 1, 1);
LocalDateTime ldtEnd = LocalDateTime.of(2018, 1, 1, 10, 27, 1);
Duration duration = Duration.between(ldtStart, ldtEnd);
System.out.println(duration);
LocalDate ldStart = LocalDate.of(2017, 12, 31);
LocalDate ldEnd = LocalDate.of(2018, 1, 1);
Period period = Period.between(ldStart, ldEnd);
System.out.println(period);
LocalDate date = LocalDate.of(2014, 3, 18);
LocalDate ld = date.with(TemporalAdjusters.lastDayOfMonth());
System.out.println(ld);
}
}
import java.time.Instant;
/**
*
* @author Administrator
*
*/
public class InstantDemo {
public static void main(String [] args) {
Instant instant = Instant.ofEpochSecond(3);
Instant instant1 = Instant.ofEpochSecond(3, 0);
Instant instant2 = Instant.ofEpochSecond(2, 1_000_000_000);
Instant instant3 = Instant.ofEpochSecond(4,-1_000_000_000);
System.out.println(instant);
System.out.println(instant1);
System.out.println(instant2);
System.out.println(instant3);
}
}
public class LambdaDemo {
public static void main(String [] args) {
process(() -> System.out.println("hello java8 1"));
process(() -> System.out.println("hello java8 2"));
process(() -> System.out.println("hello java8 3"));
Runnable r = () -> System.out.println("hello java8 4");
process(r);
}
public static void process(Runnable r) {
r.run();
}
}
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.Month;
import java.time.temporal.ChronoField;
/**
* ( )java8 api LocalDate
* @author Administrator
*
*/
public class LocalDateDemo {
public static void main(String [] args) {
System.out.println("hello time!!!");
System.out.println(" 2018");
LocalDate localDate = LocalDate.of(2017, 12, 31);
LocalDate localDateToStr = LocalDate.parse("2017-12-31");
System.out.println("localDate:" + localDate);
System.out.println("localDateToStr:" + localDateToStr);
int year = localDate.getYear();
Month month = localDate.getMonth();
int monthVal = localDate.getMonthValue();
int monthVal2 = month.getValue();
int dayOfMonth = localDate.getDayOfMonth();
int dayOfYear = localDate.getDayOfYear();
DayOfWeek dayOfWeek = localDate.getDayOfWeek();
/**
*
*/
boolean isLeap = localDate.isLeapYear();
System.out.println(" :" + dayOfWeek.values().length);
System.out.println(" :" + year);
System.out.println(" , :" + month);
System.out.println(" , :" + monthVal);
System.out.println(" , :" + monthVal2);
System.out.println(" :" + dayOfMonth);
System.out.println(" :" + dayOfYear);
System.out.println(" : :" + dayOfWeek);
System.out.println(" :" + isLeap);
/**
* TemporalField LocalDate
* ChronoField TemporalField
*/
int yearForTemp = localDate.get(ChronoField.YEAR);
int monthForTemp = localDate.get(ChronoField.MONTH_OF_YEAR);
int day = localDate.get(ChronoField.DAY_OF_MONTH);
/**
* long , , xx
*/
long xx = localDate.getLong(ChronoField.DAY_OF_MONTH);
System.out.println(" TemporalField :" + yearForTemp);
System.out.println(" TemporalField :" + monthForTemp);
System.out.println(" TemporalField :" + day);
System.out.println("xx:" + xx);
/**
*
*/
LocalDate localDateNow = LocalDate.now();
System.out.println(" :" + localDate);
}
}
import java.time.Clock;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.temporal.ChronoField;
public class LocalTimeDemo {
public static void main(String [] args) {
LocalTime localTime = LocalTime.of(23, 59, 59);
LocalTime localTimeToStr = LocalTime.parse("23:59:59");
System.out.println("localTime:" + localTime);
System.out.println("localTimeToStr:" + localTimeToStr);
int hour = localTime.getHour();
int minute = localTime.getMinute();
int second = localTime.getSecond();
/**
* TemporalField LocalDate
* ChronoField TemporalField
*/
int hourToTemp = localTime.get(ChronoField.HOUR_OF_DAY);
int minuteToTemp = localTime.get(ChronoField.MINUTE_OF_HOUR);
int secondToTemp = localTime.get(ChronoField.SECOND_OF_MINUTE);
System.out.println(hour + ":" + minute + ":" + second);
System.out.println("-----------------------");
System.out.println(hourToTemp + ":" + minuteToTemp + ":" + secondToTemp);
/**
* , 00:00:38.444
*/
System.out.println(LocalTime.now());
LocalTime time = LocalTime.now();
LocalDateTime ldt = time.atDate(LocalDate.now());
System.out.println("ldt:" + ldt);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.