Java-如何将对象列表添加到另一个对象列表

时间:2020-06-16 03:50:19

标签: java list object add

场景:有两个列表,如下所示:

List<Object[]> listOne = null;
List<Object[]> listTwo = null;
在每个列表上调用

aMethod(请参见底部),该方法将返回兼容的类型列表

listOne = aMethod(arg1, arg2, arg3);
listTwo = aMethod(argx, argy, argz);

当我尝试

listOne.add(listTwo);

我发现有关add函数的错误。建议使用addAll(),由于我的原因我不能使用它。因此,有人知道如何将对象列表[]添加到另一对象列表[]吗?谢谢。

public List<Object[]> aMethod(a1, a2, a3) {
        List<Object[]> aList = service.getSomeinfo();
        return aList;
    }

3 个答案:

答案 0 :(得分:1)

使用 <Formik enableReinitialize initialValues={{ phoneNumber: props.phoneNumber, }} onSubmit={values => { console.log('Login Submit'); }} validateOnMount={true} validationSchema={yup.object().shape({ phoneNumber: yup .string() .required() .min(8) .matches(regexPhoneNumber, 'Phone number is not valid'), })}> {({ // values, handleChange, errors, setFieldTouched, touched, isValid, handleSubmit, }) => ( <View style={styles.form}> <View style={styles.subContainer}> <View style={styles.containerTitle}> <Text style={styles.textTitle}>+62</Text> </View> <View style={styles.containerPhoneNumber}> {renderFocus()} <TextInput onFocus={() => props.setFocus(true)} value={props.phoneNumber} style={styles.subContainerPhoneNumber} placeholderStyle={styles.placeholder} placeholder={'Type your phone number'} onChangeText={(value) => { handleChange('phoneNumber'); props.changePhoneNumber(value); }} keyboardType={'numeric'} onBlur={() => setFieldTouched('phoneNumber', true)} /> </View> </View> {touched.phoneNumber && errors.phoneNumber && ( <View style={styles.containerError}> <Text style={styles.textError}>Phone number is not valid</Text> </View> )} <View style={styles.containerButton}> <TouchableOpacity disabled={!isValid} id={'nextButton'} accessible={true} accessibilityLabel={'nextButton'} // eslint-disable-next-line react-native/no-inline-styles style={{ backgroundColor: isValid ? color.thema : color.grey, paddingHorizontal: responsiveWidth(8.3), paddingVertical: responsiveHeight(2.2), justifyContent: 'center', alignItems: 'center', borderRadius: 5, }} onPress={() => handleSubmit}> <Text style={styles.textButton}>Next</Text> </TouchableOpacity> </View> </View> )} </Formik>

Stream

https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html

答案 1 :(得分:1)

您可以使用list的addAll函数将一个数组的所有元素添加到另一个数组中。

listOne.addAll(listTwo);

listOne将包含两个列表中的元素。
您可以将两个列表都添加为第三个列表:

List<Object[]> listThree = new ArrayList<Object[]>(listOne);
listThree.addAll(listTwo);

引用:https://docs.oracle.com/javase/8/docs/api/java/util/List.html#addAll-java.util.Collection-

答案 2 :(得分:1)

如果您不想使用addAll()方法,则@Shubbi可以通过迭代添加对象数组的第二个列表,如下所示:

for(Object[] o:listTwo){
    listOne.add(o);
}

如果您使用的是Java 8或更高版本,则还有另一种方法,并且通过使用Stream Api也非常有效

listOne = Stream.concat(listOne.stream(), listTwo.stream())
                .collect(Collectors.toList());  
相关问题