创建Stream

下面介绍四种方法介绍如何创建Stream 通过集合 Java8 中的 Collection 接口被扩展,提供了两个获取流的方法,这两个方法是默认实现方法: default Stream stream() : 返回一个顺序流 default Stream parallelStream() : ArrayList<Integer> nums = new ArrayList<>(…

Stream中间操作

多个 中间操作可以连接起来形成一个 流水线,除非流水线上触发终止操作,否则 中间操作不会执行任何的处理!而在 终止操作时一次性全部处理,称为“惰性求值”。 筛选与切片 方法 描述 filter(Predicate p) 接收 Lambda , 从流中排除某些元素 distinct() 筛选,通过流所生成元素的 hashCode() 和 equals() 去除重复元素 limit(long maxS…

Stream终止操作

终端操作会从流的流水线生成结果。其结果可以是任何不是流的值,例如:List、Integer,甚至是 void 。流进行了终止操作后,不能再次使用。 匹配与查找 方法 描述 allMatch(Predicate p) 检查是否匹配所有元素 anyMatch(Predicate p) 检查是否至少匹配一个元素 noneMatch(Predicate p) 检查是否没有匹配所有元素 findFirst(…

Java排序之冒泡排序、快速排序

冒泡排序在10大排序中是最简单的排序算法之一,它的思想非常容易理解。冒泡排序的基本思想: 通过对待排序序列从前向后,依次比较相邻元素的排序码,若发现逆序则交换,使排序码较大的元素逐渐从前部移向后部。 public static int[] sort1 (int[] arr) { int[] newArr = Arrays.copyOf(arr, arr.length); for (int i = …

Java数组的赋值、复制、反转、查找

赋值 数组作为引用类型,对其进行赋值后,两个数组变量引用同一个地址,修改其中一个数组变量值将会影响另外一个数组。 int[] arr = {1,3,5,7}; int[] arr2 = arr; arr2[0] = 2; System.out.println(arr[0]); // 2 复制 数组复制和赋值不一样,两个数组变量指向不同的地址,修改其中一个数组变量不会影响另外一个数组变量。 int[…

Java泛型之擦拭法

java的虚拟机是没有泛型类型对象的,所有的对象都属于普通类。 擦拭法 无论什么时候定义一个泛型,编译的时候都会自动的匹配一个相应的原始类。这个原始类名就是去掉类型参数后的泛型类型名。类型变量会被擦除,替换为限定类型,或Object(没有限定时)。 例如一个泛型类Pair如下: class Pair<T> { private T first; private T second; pub…

Java中泛型初探

泛型类 泛型类就是有一个或多个类型变量的类。 package com.studyjava.demo; import java.util.*; public class Demo19 { public static void main (String[] args) { var pair = new Pair<String>("hello ", "java&…