Java CMS收集器是一种用于收集和管理内容的软件,它可以帮助企业快速、有效地创建、管理和发布内容。Java CMS收集器可以帮助企业更好地组织、存储和共享信息,并提供一个可靠的平台来创建、管理和发布内容。
Java CMS收集器的优势在于它能够节省时间,减少人工成本,并提高工作效率。使用Java CMS收集器,企业可以快速创建、管理和发布内容,而不需要过多的人工干预。此外,Java CMS收集器还能够跟踪所有内容的版本历史,从而使企业能够快速回溯到之前的版本。
此外,Java CMS收集器还具有强大的权限管理功能。使用该工具,企业可以根据不同用户的角色来创建不同的权限策略,从而保证内容的安全性。此外,Java CMS还具有强大的数据库功能,能够将所有内容存储在一个中心位置上,方便企业随时检索所需信息。
public class JavaCMSCollector { public static void main(String[] args) { // 初始化 JavaCMSCollector 对象 JavaCMSCollector javaCMSCollector = new JavaCMSCollector(); // 连接数据库 javaCMSCollector.connectDatabase(); // 收集内容 javaCMSCollector.collectContent(); // 管理权限 javaCMSCollector.managePermissions(); // 发布内容 javaCMSCollector.publishContent(); } public void connectDatabase() { // 连接数据库代码 } public void collectContent() { // 收集内容代码 } public void managePermissions() { // 管理权限代码 } public void publishContent() { // 发布内容代码 } }
要在Stream中对数据进行分组,我们可以使用 collect()
方法的Stream<T>接口。
collect()方法重载了两个版本:
<R> R collect(Supplier<R> supplier, BiConsumer<R,? super T> accumulator, BiConsumer<R,R> combiner) <R,A> R collect(Collector<? super T,A,R> collector)
collect()方法的第一个版本有三个参数:
我们使用以下步骤在ArrayList <String>中收集员工姓名。
首先,创建一个供应商,它使用以下语句之一返回一个 ArrayList< String>
以创建供应商:
Supplier<ArrayList<String>> supplier = () -> new ArrayList<>();
要么
Supplier<ArrayList<String>> supplier = ArrayList::new;
第二,创建一个累加器,它接收两个参数,它们是从供应商返回的容器(在这种情况下为ArrayList <String>)。 和流的元素。
累加器将名称添加到列表中。
BiConsumer<ArrayList<String>, String> accumulator = (list, name) -> list.add(name); BiConsumer<ArrayList<String>, String> accumulator = ArrayList::add;
最后,组合器将结果组合成一个 ArrayList<String>
。
组合器仅用于并行流。
以下代码显示如何使用collect()方法来收集列表中所有员工的姓名。
import java.time.LocalDate; import java.time.Month; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> names = Employee.persons() .stream() .map(Employee::getName) .collect(ArrayList::new, ArrayList::add, ArrayList::addAll); System.out.println(names); } } class Employee { public static enum Gender { MALE, FEMALE } private long id; private String name; private Gender gender; private LocalDate dob; private double income; public Employee(long id, String name, Gender gender, LocalDate dob, double income) { this.id = id; this.name = name; this.gender = gender; this.dob = dob; this.income = income; } public String getName() { return name; } public static List<Employee> persons() { Employee p1 = new Employee(1, "Jake", Gender.MALE, LocalDate.of(1971, Month.JANUARY, 1), 2343.0); Employee p2 = new Employee(2, "Jack", Gender.MALE, LocalDate.of(1972, Month.JULY, 21), 7100.0); Employee p3 = new Employee(3, "Jane", Gender.FEMALE, LocalDate.of(1973, Month.MAY, 29), 5455.0); Employee p4 = new Employee(4, "Jode", Gender.MALE, LocalDate.of(1974, Month.OCTOBER, 16), 1800.0); Employee p5 = new Employee(5, "Jeny", Gender.FEMALE, LocalDate.of(1975, Month.DECEMBER, 13), 1234.0); Employee p6 = new Employee(6, "Jason", Gender.MALE, LocalDate.of(1976, Month.JUNE, 9), 3211.0); List<Employee> persons = Arrays.asList(p1, p2, p3, p4, p5, p6); return persons; } }
上面的代码生成以下结果。
第二个版本的collect()将Collector接口的一个实例作为参数。
Streams API提供了一个名为Collectors的实用程序类,为常用的收集器提供了开箱即用的实现。
三种最常用的方法之一收集器类是toList(),toSet()和toCollection()。
以下代码收集列表<String>中的所有员工姓名。
import java.time.LocalDate; import java.time.Month; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<String> names = Employee.persons() .stream() .map(Employee::getName) .collect(Collectors.toList()); System.out.println(names); } } class Employee { public static enum Gender { MALE, FEMALE } private long id; private String name; private Gender gender; private LocalDate dob; private double income; public Employee(long id, String name, Gender gender, LocalDate dob, double income) { this.id = id; this.name = name; this.gender = gender; this.dob = dob; this.income = income; } public String getName() { return name; } public static List<Employee> persons() { Employee p1 = new Employee(1, "Jake", Gender.MALE, LocalDate.of(1971, Month.JANUARY, 1), 2343.0); Employee p2 = new Employee(2, "Jack", Gender.MALE, LocalDate.of(1972, Month.JULY, 21), 7100.0); Employee p3 = new Employee(3, "Jane", Gender.FEMALE, LocalDate.of(1973, Month.MAY, 29), 5455.0); Employee p4 = new Employee(4, "Jode", Gender.MALE, LocalDate.of(1974, Month.OCTOBER, 16), 1800.0); Employee p5 = new Employee(5, "Jeny", Gender.FEMALE, LocalDate.of(1975, Month.DECEMBER, 13), 1234.0); Employee p6 = new Employee(6, "Jason", Gender.MALE, LocalDate.of(1976, Month.JUNE, 9), 3211.0); List<Employee> persons = Arrays.asList(p1, p2, p3, p4, p5, p6); return persons; } }
上面的代码生成以下结果。
以下代码收集Set<String>中的所有名称,它只保留唯一的元素。
Set<String> uniqueNames = Person.persons() .stream() .map(Person::getName) .collect(Collectors.toSet()); System.out.println(uniqueNames);
我们可以使用toCollection()方法在排序集合中收集名称,如下所示:
import java.time.LocalDate; import java.time.Month; import java.util.Arrays; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { SortedSet<String> uniqueSortedNames= Employee.persons() .stream() .map(Employee::getName) .collect(Collectors.toCollection(TreeSet::new)); System.out.println(uniqueSortedNames); System.out.println(uniqueSortedNames); } } class Employee { public static enum Gender { MALE, FEMALE } private long id; private String name; private Gender gender; private LocalDate dob; private double income; public Employee(long id, String name, Gender gender, LocalDate dob, double income) { this.id = id; this.name = name; this.gender = gender; this.dob = dob; this.income = income; } public String getName() { return name; } public static List<Employee> persons() { Employee p1 = new Employee(1, "Jake", Gender.MALE, LocalDate.of(1971, Month.JANUARY, 1), 2343.0); Employee p2 = new Employee(2, "Jack", Gender.MALE, LocalDate.of(1972, Month.JULY, 21), 7100.0); Employee p3 = new Employee(3, "Jane", Gender.FEMALE, LocalDate.of(1973, Month.MAY, 29), 5455.0); Employee p4 = new Employee(4, "Jode", Gender.MALE, LocalDate.of(1974, Month.OCTOBER, 16), 1800.0); Employee p5 = new Employee(5, "Jeny", Gender.FEMALE, LocalDate.of(1975, Month.DECEMBER, 13), 1234.0); Employee p6 = new Employee(6, "Jason", Gender.MALE, LocalDate.of(1976, Month.JUNE, 9), 3211.0); List<Employee> persons = Arrays.asList(p1, p2, p3, p4, p5, p6); return persons; } }
上面的代码生成以下结果。
Java流 -Java流查找Streams API支持对流元素的不同类型的查找操作。Stream接口中的以下方法用于执行查找操作:OptionalT findAny...
JavaFX教程 -JavaFX工具提示当鼠标光标悬停在控件上时,将出现工具提示。工具提示用于显示有关UI控件的其他信息。我们可以通过调...
Java Lambda表达式作用域lambda表达式不定义自己的范围。如果我们在lambda中使用关键字 this 和 super 表达式在方法中,它们的行...