21xrx.com
2024-12-23 11:27:42 Monday
登录
文章检索 我的文章 写文章
我最近在学习Java编程
2023-06-14 22:30:50 深夜i     --     --

我最近在学习Java编程,其中两个特别常用的关键词是stream和sorted。Java Stream是一种强大的API,可以帮助我们简化集合数据的处理和转换。而sorted则是Stream API中一种非常实用的操作方式,可以对集合中的数据进行排序。今天我想向大家分享一下,如何使用Java Stream中的sorted方法。

首先要明确的是,sorted方法是一种中间操作,它可以被用于任何类型的Stream中。当使用该方法时,集合中的每个元素都会被传递给Comparator对象,该对象定义了集合元素如何比较和排序。我们可以选择使用默认Comparator,也可以创建一个自定义的Comparator。

例如,在以下代码片段中,我创建了一个包含整数的List对象,然后使用sorted方法和默认Comparator按从小到大的顺序排序:


List numbers = Arrays.asList(1, 3, 4, 2, 5);

numbers.stream().sorted().forEach(num -> System.out.print(num + " "));

//Output: 1 2 3 4 5

除了默认的升序排序,我们还可以使用自定义的Comparator对集合进行排序。以下是一个示例,其中我创建了一个自定义的Person对象并使用sorted方法对其进行按年龄降序排序:


class Person {

   String name;

   int age;

  

   public Person(String name, int age)

     this.name = name;

     this.age = age;

  

}

List people = Arrays.asList(

   new Person("Tom", 25),

   new Person("Sara", 30),

   new Person("Mike", 20),

   new Person("John", 40)

);

people.stream()

   .sorted(Comparator.comparing(Person::getAge).reversed())

   .forEach(p -> System.out.print(p.name + " "));

//Output: John Sara Tom Mike

除了sorted方法外,我们还可以使用forEach方法来遍历集合中的元素。forEach方法是一个终端操作,它的作用仅仅是对Stream中的元素执行某些操作。以下是一个例子,我使用forEach方法打印一个字符串列表中所有元素的大写形式:


List names = Arrays.asList("Tom", "Sara", "Mike", "John");

names.stream().map(String::toUpperCase).forEach(name -> System.out.print(name + " "));

//Output: TOM SARA MIKE JOHN

总之,Java Stream API是一种非常有用的编程工具,sorted和forEach是其中非常实用的方法。我们可以使用它们来简化我们的代码,并加快我们的开发速度。如果你还没有开始使用Java Stream,请尝试一下吧!

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复