有人告诉我创建一个结合两个通用ArrayList
的方法。这是代码,我有几个问题:
public static <T> List<T> combineArrayList(List<T> list_Array1, List<T> list_Array2){
List<T> returnList = new ArrayList<T>();
int i;
for(i = 0;i< list_Array1.size();i++){
returnList.add(list_Array1.get(i));
}
for(i = 0;i< list_Array2.size();i++){
returnList.add(list_Array2.get(i));
}
return returnList;
}
public static <T> void main(String[] args) {
// Create a list and add some colors to the list
List<String> list_Strings = new ArrayList<String>();
List<String> list_Strings2 = new ArrayList<String>();
List<T> returnedList = new ArrayList<T>();
list_Strings.add("Red");
list_Strings2.add("yellow");
returnedList = (List<T>) combineArrayList(list_Strings,list_Strings2);
// Print the list
System.out.println(returnedList);
}
static
添加combineArray()
generic
声明添加为<T>
?List<String>
的形式返回。如何将变量声明为List<T>
或List<String>
,这是什么约定? ?combineArrayList()
的List<T>
的类型强制转换为List<T>
?谢谢!
List<T> returnedList = new ArrayList<T>();
中的这一行迫使您这样做。泛型不在运行时评估。public static void main(String[] args) {
// Create a list and add some colors to the list
List<String> list_Strings = new ArrayList<>();
List<String> list_Strings2 = new ArrayList<>();
list_Strings.add("Red");
list_Strings2.add("yellow");
List<String> returnedList = combineArrayList(list_Strings, list_Strings2);
// Print the list
System.out.println(returnedList);
}
combineArrayList()
函数将返回什么,您想将其分配给List<T>
。