package com.cyh.java8;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
public class Demo {
private static List<Integer> list = new ArrayList<>(5);
@BeforeClass
public static void init(){
for (int i = 0; i < 50000000; i++) {
list.add(i);
}
}
/**
* anyMatch 方法测试
*/
@Test
public void comparison(){
//数据在1万以下 contains快于anyMatch 特别是在中位数时明显快于anyMatch
List<Long> ls = new ArrayList<>(16);
/*List<Integer> collect = list.stream().limit(10000).collect(Collectors.toList());
ls.add(System.currentTimeMillis());
if (collect.stream().anyMatch(x->x.intValue()==1000)) {
ls.add(System.currentTimeMillis());
}
if (collect.stream().anyMatch(x->x.intValue()==5000)) {
ls.add(System.currentTimeMillis());
}
if (collect.stream().anyMatch(x->x.intValue()==9000)) {
ls.add(System.currentTimeMillis());
}
if (collect.contains(1000)) {
ls.add(System.currentTimeMillis());
}
if (collect.contains(5000)) {
ls.add(System.currentTimeMillis());
}
if (collect.contains(9000)) {
ls.add(System.currentTimeMillis());
}
statistics(ls);*/
/*
* 3
* 2
* 1
* 2
* 0
* 1
*/
/* List<Integer> col = list.stream().limit(100000).collect(Collectors.toList());
ls.add(System.currentTimeMillis());
if (col.stream().anyMatch(x->x.intValue()==10000)) {
ls.add(System.currentTimeMillis());
}
if (col.stream().anyMatch(x->x.intValue()==50000)) {
ls.add(System.currentTimeMillis());
}
if (col.stream().anyMatch(x->x.intValue()==90000)) {
ls.add(System.currentTimeMillis());
}
if (col.contains(10000)) {
ls.add(System.currentTimeMillis());
}
if (col.contains(50000)) {
ls.add(System.currentTimeMillis());
}
if (col.contains(90000)) {
ls.add(System.currentTimeMillis());
}
statistics(ls);*/
/*
10
19
18
1
3
4
*/
/*List<Integer> lst = list.stream().limit(1000000).collect(Collectors.toList());
ls.add(System.currentTimeMillis());
if (lst.stream().anyMatch(x->x.intValue()==100000)) {
ls.add(System.currentTimeMillis());
}
if (lst.stream().anyMatch(x->x.intValue()==500000)) {
ls.add(System.currentTimeMillis());
}
if (lst.stream().anyMatch(x->x.intValue()==900000)) {
ls.add(System.currentTimeMillis());
}
if (lst.contains(100000)) {
ls.add(System.currentTimeMillis());
}
if (lst.contains(500000)) {
ls.add(System.currentTimeMillis());
}
if (lst.contains(900000)) {
ls.add(System.currentTimeMillis());
}
statistics(ls);*/
/*
26
28
27
2
6
2
*/
List<Integer> lst = list.stream().limit(10000000).collect(Collectors.toList());
ls.add(System.currentTimeMillis());
if (lst.stream().anyMatch(x->x.intValue()==1000000)) {
ls.add(System.currentTimeMillis());
}
if (lst.stream().anyMatch(x->x.intValue()==5000000)) {
ls.add(System.currentTimeMillis());
}
if (lst.stream().anyMatch(x->x.intValue()==9000000)) {
ls.add(System.currentTimeMillis());
}
if (lst.contains(1000000)) {
ls.add(System.currentTimeMillis());
}
if (lst.contains(5000000)) {
ls.add(System.currentTimeMillis());
}
if (lst.contains(9000000)) {
ls.add(System.currentTimeMillis());
}
statistics(ls);
/**
* 42
* 42
* 86
* 11
* 21
* 13
*/
}
private void statistics(List<Long> ls){
for (int i = 0; i < ls.size(); i++) {
if (i>=1) {
long l1 = ls.get(i) - ls.get(i - 1);
System.out.println(l1);
}
}
}
}