我想将数据从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,以显示其构造方式。
答案 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));
}