java.util.list的客户转换器到数组

Adi*_*ain 2 java arrays list

我有一个对象类型的列表,如Customer类(属性:customerId,customerName)和一个String数组.

有没有办法从列表中填充/获取包含所有customerName的数组?(除了手动迭代列表),

Customer c1 = new Customer(1,"ABC");
Customer c2 = new Customer(2,"DEF");
Customer c3 = new Customer(3,"XYZ");
List<Customer> list = new ArrayList<Customer>();
list.put(c1); list.put(c2); list.put(c3);

String[] allCustomerNames = new String[list.size()];
//Code to get allCustomerNames populated.
//Ofcourse, other than to iterate through list 
Run Code Online (Sandbox Code Playgroud)

有什么办法可以类似......

allCustomerNames = list.toArray(customerNameConvertor);
Run Code Online (Sandbox Code Playgroud)

其中customerNameConveror是假设的转换器类,它将告诉使用customerName来获取数组元素的数量.

Ale*_*øld 5

您可以使用第三方库(例如GuavaF4J)来完成此操作.

这就是它在Guava中的样子:

Function<Customer, String> customerToName = new Function<Customer, String>() {
        public String apply(Customer c) {
            return c.getName();
       };

List<String> allCustomerNamesList = Lists.transform(list, customerToName);
Run Code Online (Sandbox Code Playgroud)

如果需要数组,则必须使用常规的toArray方法: allCustomerNames = allCustomerNamesList.toArray(allCustomerNames);