java必备技能-stream常规用法

在这里插入图片描述

/**
 * set-去重,stream-并发, filter-过滤
 * join-联结
  */
private String parseNZMA(String text) {
    String english = ChineseAndEnglish.getEnglish(text);
    // set去除重复项
    Set<String> nzma = Arrays.stream(english.split("\\s")).filter(item -> {
        // 去除单项
        if (item.length() < 2) {
            return false;
        }
        return true;
    }).collect(Collectors.toSet());
    
    return CollUtil.join(nzma, " ");
}
/**
 * map-平方,reduce-累加
 */
List<Float> vector = ;
float squareSum = vector.stream().map(x -> x * x).reduce((float) 0, Float::sum);
/**
 * map-归一化
 */
List<ByteBuffer> vectors = vectors.stream().map(BinaryVector::normalizeVector).collect(Collectors.toList());
// 中文优先
Set<String> brandCh = brand.stream().filter(b -> {
	return ReUtil.isMatch("([\\u4e00-\\u9fa5]+)", b);
}).collect(Collectors.toSet());
System.out.println("---Min and Max for Integer---");
List<Integer> numList = Arrays.asList(42, 44, 43, 41);
Comparator<Integer> comparator = Comparator.comparing(Integer::intValue);
// 41
Optional<Integer> minOptional = numList.stream().min(comparator);
minOptional.ifPresent(e -> System.out.println("Min: " + e));
// 44
Optional<Integer> maxOptional = numList.stream().max(comparator);
maxOptional.ifPresent(e -> System.out.println("Max: " + e));

System.out.println("---Min and Max for String---");
List<String> list = Arrays.asList("Mohit", "Nilesh", "Shankar", "Brajesh");
// Brajesh
list.stream().min(Comparator.comparing(String::valueOf))
.ifPresent(e -> System.out.println("Min: " + e));
// Shankar
list.stream().max(Comparator.comparing(String::valueOf))
   .ifPresent(e -> System.out.println("Max: " + e));
/**
 * distinct-去重,count-统计元素个数
 */
 String[] arr = new String[]{"武汉加油", "中国加油", "世界加油", "中国加油"};
// 3
long count = Arrays.stream(arr).distinct().count();
System.out.println(count);
String[] arr = new String[]{"武汉加油", "中国加油", "世界加油", "中国加油"};
// true
boolean  anyMatchFlag = Arrays.stream(arr).anyMatch(element -> element.contains("王"));
// true
boolean  allMatchFlag = Arrays.stream(arr).allMatch(element -> element.length() > 1);
// true
boolean  noneMatchFlag = Arrays.stream(arr).noneMatch(element -> element.endsWith("a"));
List<String> list = new ArrayList<>();
list.add("周杰伦");
list.add("王力宏");
list.add("陶喆");
list.add("林俊杰");

String[] strArray = list.stream().toArray(String[]::new);
System.out.println(Arrays.toString(strArray));

List<Integer> list1 = list.stream().map(String::length).collect(Collectors.toList());
List<String> list2 = list.stream().collect(Collectors.toCollection(ArrayList::new));
System.out.println(list1);
System.out.println(list2);

// list 转 string
String str = list.stream().collect(Collectors.joining(", ")).toString();
System.out.println(str);
// 流合并
Stream<Integer> stream = Stream.of(1, 2, 3);
Stream<Integer> another = Stream.of(4, 5, 6);
Stream<Integer> concat = Stream.concat(stream, another);
 
List<Integer> collect = concat.collect(Collectors.toList());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值