有<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="text1"> Text Here </p>
<input type="button" id="mod" name="modify" value="modify" />
个对象需要创建对象,该对象将添加到具有不同元素的另一个列表中:List<MyObject>
。
这就是我的工作方式,
List<OtherObject>
我正在寻找一个List<MyObject> myList = returnsList();
List<OtherObj> emptyList = new ArrayList();
for(MyObject obj: myList) {
OtherObj oo = new OtherObj();
oo.setUserName(obj.getName());
oo.setUserAge(obj.getMaxAge());
emptyList.add(oo);
}
表达式来完成同样的事情。
答案 0 :(得分:6)
如果定义构造函数OtherObj(String name, Integer maxAge)
,则可以使用java8样式:
myList.stream()
.map(obj -> new OtherObj(obj.getName(), obj.getMaxAge()))
.collect(Collectors.toList());
这会将列表myList
中的所有对象映射到OtherObj
,并将其收集到包含这些对象的新List
。
答案 1 :(得分:1)
您可以在OtherObject
中使用MyObject
属性
public OtherObject(MyObject myObj) {
this.username = myObj.getName();
this.userAge = myObj.getAge();
}
您可以执行以下操作,从OtherObject
s
MyObject
myObjs.stream().map(OtherObject::new).collect(Collectors.toList());
答案 2 :(得分:0)
我看到这是相当古老的帖子。但是,这是基于之前的答案我对此的看法。我的答案中唯一的修改是使用.collect(ArrayList::new, ArrayList::add,ArrayList:addAll)
。
示例代码:
List<OtherObj> emptyList = myList.stream()
.map(obj -> {
OtherObj oo = new OtherObj();
oo.setUserName(obj.getName());
oo.setUserAge(obj.getMaxAge());
return oo; })
.collect(ArrayList::new, ArrayList::add,ArrayList::addAll);