如何将数据从ArrayList <string>传递给List <class?

时间:2018-04-06 16:50:17

标签: java android arrays

=“”

我想将数据从ArrayList保存/解析到List,但我无法弄清楚如何实现它。

我有2个列表如下:

public static ArrayList<String> list2= new ArrayList<>();
public static List<Contact> sortedList= new ArrayList<>();

list2有像

这样的数据
ArrayList<String> list2 = ["9847523587", "6738654738"]

我想在sortedList中使用list2数据。 我怎么能得到它?

Contact.java

public class Contact implements Serializable, Comparable<Contact> {
/**
 *
 */

private String fullName, firstName, lastName, androidId, androidRawId, androidTagId, organization;
private transient Uri photoUri, thumbnailUri;
private List<NumberOrAddress> addresses;
private transient ArrayList<ContentProviderOperation> changesToCommit;
private transient ArrayList<ContentProviderOperation> changesToCommit2;

public void setInitial(String initial) {
    this.initial = initial;
}

public Contact() {
    addresses = new ArrayList<>();
    androidId = null;
    thumbnailUri = null;
    photoUri = null;
    changesToCommit = new ArrayList<>();

    changesToCommit2 = new ArrayList<>();
    hasSipAddress = false;
}
}
}

添加了Contact.java,以显示其构造方式。

2 个答案:

答案 0 :(得分:2)

您需要一些方法,该方法需要String并返回Contact才能在两种不同类型之间进行转换。

例如,如果Contact有一个带字符串的构造函数,那么你可以这样做:

list2.stream()
    .map(Contact::new)
    .forEach(sortedList::add);

答案 1 :(得分:1)

您可以执行以下操作(假设contact.getContactString()返回所需的字符串):

for(Contact contact: list1){
    list2.add(contact.getContactString());
}

Collection.sort(list2);

然后:

  for(String str: list2){
    // assuming Contact can be constructed using a String
    sortedList.add(new Contact(str)); 
 }
相关问题