我创建一个记录用户:
\npublic record User(String name, int age, List<String> skills, boolean isActive) {\n}\nRun Code Online (Sandbox Code Playgroud)\n和用户列表:
\n private static List<User> prepareData() {\n List<User> users = new ArrayList<>();\n\n users.add(new User("Kamil", 35, List.of("Java", "Python", "JavaScript"), true));\n users.add(new User("Mariusz", 36, List.of("Java", "C++", "C#"), true));\n users.add(new User("Dominik", 30, List.of("Java", "Dart", "Python"), false));\n users.add(new User("Paulina", 36, List.of("PHP", "SQL", "Python"), false));\n users.add(new User("Rafa\xc5\x82", 40, List.of("C#", "Dart"), true));\n users.add(new User("Agnieszka", 29, List.of("Java", "Scala", "Kotlin", "Haskell", "Clojure"), false));\n users.add(new User("Weronika", 43, List.of("Python", "C#", "VBA"), true));\n\n return users;\n }\nRun Code Online (Sandbox Code Playgroud)\n现在我需要找到一个了解最多技术的用户(使用流!)并显示他的姓名和技术列表。我一直在尝试了解如何对流中的列表进行排序。我尝试过使用比较器方法,但它抛出一个错误:
\n users.stream()\n .sorted(Comparator.comparing(User::skills))\nRun Code Online (Sandbox Code Playgroud)\n知道该怎么做吗?
\n您可以使用Stream#max而不是排序:
User result = users.stream()
.max(Comparator.comparingInt(user -> user.skills.size()))
.orElse(null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
141 次 |
| 最近记录: |