标签:stream List System limit forEach println java8
package stream;
import com.sun.imageio.plugins.common.InputStreamAdapter;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author: wu linchun
* @time: 2021/7/26 14:19
* @description: java8 stream
*/
public class Java8Test {
public static void main(String[] args) {
//filter
//初始化一个filter_list
List<String> filter_list = Arrays.asList("123", "234", "ssa", "ccd", "hhh", "", "");
//遍历输出filter_list
filter_list.forEach(System.out::println);
//过滤调filter_list中的某些值(过滤掉hhh和ccd)
List<String> filter = filter_list.stream().filter(String -> !String.equals("hhh") && !String.equals("ccd")).collect(Collectors.toList());
filter.forEach(System.out::println);
//map
List<Integer> map_list1 = Arrays.asList(1, 2, 2, 4, 5, 6);
//给map_list1中所有值*2
List<Integer> maplist = map_list1.stream().map(i -> i * 2).collect(Collectors.toList());
//给map_list1中所有值*2并过滤掉重复值
List<Integer> mapdistinctlist = map_list1.stream().map(i -> i * 2).distinct().collect(Collectors.toList());
maplist.forEach(System.out::println);
mapdistinctlist.forEach(System.out::println);
//limit
Random random = new Random();
//生成随机数并只遍历输出10个
random.ints().limit(10).forEach(System.out::println);
List<Integer> limit_list1 = Arrays.asList(1, 10, 2, 4, 5, 6);
//只取limit_list2的前三个并对这两个数进行升序排序(先取前3个值再对这3个排序)
List<Integer> limit_list2 = limit_list1.stream().limit(3).sorted().collect(Collectors.toList());
//先对limit_list2_1升序排序,再取前三个
List<Integer> limit_list2_1 = limit_list1.stream().sorted().limit(3).collect(Collectors.toList());
//用自己定义的比较器进行排序
List<Integer> limit_list3 = limit_list1.stream().sorted(new MyComparetor()).collect(Collectors.toList());
List<String> limit_list4 = Arrays.asList("a223", "tsr", "bdd", "cdd", "caa", "a122");
List<String> limit_list5 = limit_list4.stream().sorted(new MyComparetor1()).collect(Collectors.toList());
limit_list2.forEach(System.out::println);
limit_list2_1.forEach(System.out::println);
limit_list3.forEach(System.out::println);
limit_list5.forEach(System.out::println);
//sorted
Random random1 = new Random();
random1.ints().limit(10).sorted().forEach(System.out::println);
}
static class MyComparetor implements Comparator<Integer> {
@Override
public int compare(Integer o1, Integer o2) {
//升序:o1-o2
//降序:o2-o1
return o1 - o2;
}
}
static class MyComparetor1 implements Comparator<String> {
@Override
public int compare(String o1, String o2) {
//升序:o1.compareTo(o2)
//降序:o2.compareTo(o1)
return o1.compareTo(o2);
}
}
}
标签:stream,List,System,limit,forEach,println,java8 来源: https://blog.csdn.net/weixin_42032770/article/details/119111357
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。