如何将ArrayList<String>的数据转换到List<Contact>集合中?
解决ArrayList转List的问题
没问题,这其实很简单——核心就是把list2里的每个电话号码字符串,转换成Contact对象后再加入sortedList就行。下面给你几种常用的实现方式,你可以根据自己的Contact类结构来选:
方式1:普通for循环(兼容性最好,适合所有Java版本)
如果你的Contact类有接收字符串参数的构造方法(比如用来初始化电话号码属性),直接遍历添加就行:
// 假设Contact类有这样的构造方法:public Contact(String phoneNumber) { ... } for (String phoneNumber : list2) { sortedList.add(new Contact(phoneNumber)); }
如果Contact没有对应的构造方法,而是用setter方法来设置电话号码,那可以这样写:
// 假设Contact类有setter:public void setPhoneNumber(String phoneNumber) { ... } for (String phoneNumber : list2) { Contact contact = new Contact(); contact.setPhoneNumber(phoneNumber); sortedList.add(contact); }
方式2:Java 8+ Stream API(更简洁优雅)
如果你用的是Java 8及以上版本,用Stream可以一行搞定:
import java.util.stream.Collectors; // 同样依赖Contact有对应的构造方法 sortedList = list2.stream() .map(Contact::new) // 构造方法引用,等价于phone -> new Contact(phone) .collect(Collectors.toList());
要是用setter的话,Stream写法也很直观:
sortedList = list2.stream() .map(phone -> { Contact contact = new Contact(); contact.setPhoneNumber(phone); return contact; }) .collect(Collectors.toList());
注意事项
- 确保你的
Contact类有对应的电话号码属性(比如private String phoneNumber;),以及对应的构造方法或setter/getter,不然没法完成赋值。 - 如果
sortedList已经被初始化过(比如你代码里的new ArrayList<>()),用addAll或者直接赋值都可以,根据需求选择就行。
内容的提问来源于stack exchange,提问作者Developer
相关产品推荐
相关产品推荐

