[英]Convert String array to List of Objects by assigning the string(from array) as one of the parameter of the Object leaving other parameters as null
我有一個字符串數組
adrs[] = {
"BD Jules Ferry",
"Rue de Republique",
"Avenue de Julin"};
我有一個名為“地址”的對象(為簡單起見,省略了// getter setter)
public class Address{
adrsLine1 String;
adrsLine2 String;
adrsLine3 String;
postalCode String;
}
我想通過將數組中的每個字符串分配為Address
adrsLine1
參數,將該adrs[]
轉換為List<<Address>> addrsList
。
轉換后,我的addrsList
每個地址對象都會像這樣,
addrsList.get(0)
將具有[BD Jules Ferry,null,null,null] addrsList.get(1)
將具有[Rue de Republique,null,null,null] addrsList.get(2)
將具有[Avenue de Julin,null,null,null] 我使用Java 8,目前,我使用for loop
來實現這一點,Java 8中是否有任何捷徑或更有效的方法?
樣例代碼:
private String[] AdrsArray = {"BD Jules Ferry", "Rue de Republique", "Avenue de Julin"};
List<Address> addrsList = new ArrayList<>();
for (String adrsLine : AdrsArray){
Address address = new ReturnAddress();
address.setAdrsLine1(adrsLine);
addrsList.add(address);
}
輸出:
Address address = addrsList.get(0);
address.getAdrsLine1() //should have "BD Jules Ferry"
address.getAdrsLine2() //should have null
address.getAdrsLine3() //should have null
address.getAdrsPostalCode() //should have null
您可以使用Java 8中可用的streams
來簡化代碼,如下所示。
List<Address> addrsList = Arrays.stream(adrs).map(adr -> {
Address address = new ReturnAddress();
address.setAdrsLine1(adr);
return address;
}).collect(Collectors.toList());
List<Address> addressList = Arrays.stream(AdrsArray)
.map(Address::new)
.collect(Collectors.toList());
您必須向Address類添加一個接受adrsLine1
的構造adrsLine1
。
public class Address{
private String adrsLine1;
private String adrsLine2;
private String adrsLine3;
private String postalCode;
Address(String address1) {
adrsLine1 = address1;
}
}
您可以使用流。 我建議您在Address
類中實現一個構造函數,例如
Address(String adrsLine1) {
this.adrsLine1 = adrsLine1;
}
然后,您可以使用以下簡短代碼段進行操作:
List<Address> addrsList = Arrays.stream(adrs)
.map(adr -> new Address(adr))
.collect(Collectors.toCollection(ArrayList::new));
如果需要特定的列表類型(例如ArrayList
,則應使用Collectors.toCollection(ArrayList::new)
;否則(如果您可以接受任何列表類型),則可以僅使用Collectors.toList()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.