ユーザーを説明する3つのリストがあります:ステータス、名前、メールアドレス。各リストの各要素をオブジェクトに配置する必要があります(たとえば、各リストから最初の各要素を取得してUserItemに配置し、オブジェクトをリストに追加すると、最初のユーザーが記述されます)。次のソリューションを使用していますが、これをより効率的に解決するためのデザインパターンはありますか?古典的なforループを避けたい(ストリームAPIを使用して解決策を見つけようとしましたが、無駄です)。
public List<UserItem> mapToObject(final List<String> statusList, final List<String> nameList, final List<String> emailList) {
for (int i = 0; i < emailList.size(); i++) {
var item = new UserItem();
item.setStatus(statusList.get(i));
item.setName(nameList.get(i));
item.setEmail(emailList.get(i));
setItem(item);
}
return getItems();
}
リストまたは任意の種類の配列型データオブジェクトから収集されたデータを使用してオブジェクトを作成するには、ループが必要なので、forループ、whileループ、またはコメントのようにループを使用する必要がありforEach
ます。
デザインパターンの回答が必要な場合は、リストごとにイテレータを使用します。
public List<UserItem> mapToObject(final List<String> statusList, final List<String> nameList, final List<String> emailList) {
List<UserItem> users = new ArrayList<>();
Iterator statusIt = statusList.iterator();
Iterator nameIt = nameList.iterator();
Iterator emailIt = emailList.iterator();
while (statusIt.hasNext() && nameIt.hasNext() && emailIt.hasNext()) {
UserItem item = new UserItem();
item.setStatus((String)statusIt.next());
item.setName((String)nameIt.next());
item.setEmail((String)emailIt.next());
users.add(item);
}
return users;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加