场景:有两个列表,如下所示:
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;
}
答案 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());