1、判断 List
- List
bigDecimals = new ArrayList(); - bigDecimals.add(new BigDecimal("1"));
- bigDecimals.add(new BigDecimal("1"));
- bigDecimals.add(new BigDecimal("6"));
- bigDecimals.add(new BigDecimal("9"));
- Boolean con= continuousRise(bigDecimals);
- System.out.println(con); //结果为:true
- //是否连续上升(包括等值)
- public Boolean continuousRise(List
list) { - if (CollectionUtil.isEmpty(list)) {
- return false;
- }
-
- //如果所有相邻元素都满足升序排列(包括等值),则返回true,否则返回false。
- return IntStream.range(0, list.size() - 1)
- .allMatch(i -> list.get(i).compareTo(list.get(i + 1)) <= 0);
- }
1. 使用IntStream.range()方法创建一个从0到list.size()-1的整数范围,表示需要比较的相邻元素的下标。
2. 使用allMatch()方法遍历整数范围,判断相邻元素是否满足升序排列。
3. 使用lambda表达式作为参数传递给allMatch()方法,以便比较相邻元素的大小。
4. 在lambda表达式中,使用list.get()方法获取相邻元素的值,并使用compareTo()方法进行比较。
5. 如果所有相邻元素都满足升序排列,则返回true,否则返回false。
2、判断 List
- List
bigDecimals2 = new ArrayList(); - bigDecimals2.add(new BigDecimal(100));
- bigDecimals2.add(new BigDecimal(90));
- bigDecimals2.add(new BigDecimal(80));
- bigDecimals2.add(new BigDecimal(10));
- bigDecimals2.add(new BigDecimal(6));
- bigDecimals2.add(new BigDecimal(6));
-
- Boolean con2 = continuousDecline(bigDecimals2);
- System.out.println(con2);//结果为:true
- //是否连续下降(包括等值)
- public Boolean continuousDecline(List
list) { -
- if (CollectionUtil.isEmpty(list)) {
- return false;
- }
- //如果所有相邻元素都满足降序排列(包括等值),则返回true,否则返回false。
- return IntStream.range(0, list.size() - 1)
- .allMatch(i -> list.get(i).compareTo(list.get(i + 1)) >= 0);
- }
3、以上判断是包括相邻数据相等的情况,如果不包括相等的情况,如下改写
//如果所有相邻元素都满足升序排列(不包括等值),则返回true,否则返回false。
return IntStream.range(0, list.size() - 1)
.allMatch(i -> list.get(i).compareTo(list.get(i + 1)) < 0);
// 如果所有相邻元素都满足降序排列(不包括等值),则返回true,否则返回false。
return IntStream.range(0, list.size() - 1)
.allMatch(i -> list.get(i).compareTo(list.get(i + 1)) > 0);
4、判断集合中的数据是否连续上升方式二:
- public boolean continuousRise2(List
list) { - if (CollectionUtil.isEmpty(list)) {
- return false;
- }
- BigDecimal prev = list.get(0);
- for (int i = 1; i < list.size(); i++) {
- BigDecimal current = list.get(i);
- if (current.compareTo(prev) <= 0) { //<= 0 不包括等值情况; < 0 包括等值情况
- return false;
- }
- prev = current;
- }
- return true;
- }