在Java编程中,范围匹配是一种非常实用的技巧,它可以帮助我们更简洁地处理数据。本文将详细介绍Java中的范围匹配,包括其基本概念、使用方法以及一些实用的实例解析。
范围匹配的基本概念
范围匹配在Java中主要指的是使用Range类和Stream API中的filter方法来实现对集合中元素的范围筛选。Range类是一个不可变的、表示一个半开区间(包含起始值,不包含结束值)的类。它提供了起始值和结束值,以及一个布尔值来表示是否包含起始值。
范围匹配的使用方法
1. 使用Range类
import java.util.Arrays;
import java.util.List;
public class RangeExample {
public static void main(String[] args) {
Range range = new Range(1, 10);
List<Integer> numbers = Arrays.asList(5, 7, 12, 15, 18);
List<Integer> filteredNumbers = numbers.stream()
.filter(number -> range.contains(number))
.collect(Collectors.toList());
System.out.println(filteredNumbers); // 输出: [5, 7, 12, 15, 18]
}
}
2. 使用Stream API的filter方法
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamFilterExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(5, 7, 12, 15, 18);
List<Integer> filteredNumbers = numbers.stream()
.filter(number -> number >= 10 && number <= 20)
.collect(Collectors.toList());
System.out.println(filteredNumbers); // 输出: [12, 15, 18]
}
}
实例解析
实例1:筛选年龄在18-25岁之间的用户
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class AgeFilterExample {
public static void main(String[] args) {
List<Integer> ages = Arrays.asList(18, 20, 25, 30, 35);
List<Integer> filteredAges = ages.stream()
.filter(age -> age >= 18 && age <= 25)
.collect(Collectors.toList());
System.out.println(filteredAges); // 输出: [18, 20, 25]
}
}
实例2:筛选字符串长度在5-10之间的单词
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StringLengthFilterExample {
public static void main(String[] args) {
List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elephant");
List<String> filteredWords = words.stream()
.filter(word -> word.length() >= 5 && word.length() <= 10)
.collect(Collectors.toList());
System.out.println(filteredWords); // 输出: [banana, cherry, date]
}
}
总结
通过本文的介绍,相信你已经对Java中的范围匹配有了更深入的了解。在实际编程过程中,合理运用范围匹配技巧可以让我们更加高效地处理数据。希望本文能帮助你轻松掌握范围匹配的实用技巧。
