You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:28:27