Java 8 是 Java 语言的一个重要版本,它引入了许多新的特性和改进,使得编程更加高效和便捷。以下是一些 Java 8 的实用新特性及其案例,帮助你更好地掌握这门语言。
1. Lambda 表达式
Lambda 表达式是 Java 8 中最引人注目的特性之一。它允许你以更简洁的方式编写代码,尤其是在处理集合和流操作时。
案例:使用 Lambda 表达式对列表进行排序
import java.util.Arrays;
import java.util.List;
public class LambdaExample {
public static void main(String[] args) {
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
names.sort((name1, name2) -> name1.compareTo(name2));
System.out.println(names);
}
}
在这个例子中,我们使用 Lambda 表达式对字符串列表进行排序。
2. Stream API
Stream API 是 Java 8 引入的另一个重要特性,它允许你以声明式的方式处理集合。
案例:使用 Stream API 计算列表中所有偶数的和
import java.util.Arrays;
import java.util.List;
public class StreamExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
int sum = numbers.stream()
.filter(n -> n % 2 == 0)
.mapToInt(Integer::intValue)
.sum();
System.out.println(sum);
}
}
在这个例子中,我们使用 Stream API 过滤出所有偶数,并将它们相加。
3. 方法引用
方法引用是 Lambda 表达式的一种简写形式,它允许你直接引用现有方法。
案例:使用方法引用来比较两个字符串
import java.util.Arrays;
import java.util.List;
public class MethodReferenceExample {
public static void main(String[] args) {
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
String maxName = names.stream()
.max(String::compareTo)
.get();
System.out.println(maxName);
}
}
在这个例子中,我们使用方法引用来找到列表中的最大字符串。
4. 默认方法和接口静态方法
Java 8 允许接口有默认方法和静态方法,这为接口提供了更多的灵活性。
案例:创建一个具有默认方法的接口
public interface Calculator {
int add(int a, int b);
default int multiply(int a, int b) {
return a * b;
}
}
public class CalculatorExample {
public static void main(String[] args) {
Calculator calculator = new Calculator() {
@Override
public int add(int a, int b) {
return a + b;
}
};
System.out.println(calculator.add(5, 3));
System.out.println(calculator.multiply(5, 3));
}
}
在这个例子中,我们创建了一个具有默认方法的接口 Calculator。
5. 时间 API
Java 8 引入了一个全新的时间 API,它提供了一种更简单、更直观的方式来处理日期和时间。
案例:使用新的时间 API 来获取当前时间
import java.time.LocalDateTime;
public class TimeApiExample {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
System.out.println(now);
}
}
在这个例子中,我们使用新的时间 API 来获取当前时间。
通过掌握这些 Java 8 的新特性,你可以编写更高效、更简洁的代码。希望这些案例能够帮助你更好地理解和应用这些特性。