给定Element[]类型的数组:
Element[] array = {new Element(1), new Element(2), new Element(3)};
如何将此数组转换为ArrayList<Element>类型的对象?
ArrayList<Element> arrayList = ???;
给定Element[]类型的数组:
Element[] array = {new Element(1), new Element(2), new Element(3)};
如何将此数组转换为ArrayList<Element>类型的对象?
ArrayList<Element> arrayList = ???;
当前回答
您可能只需要一个List,而不是ArrayList。在这种情况下,您只需执行以下操作:
List<Element> arraylist = Arrays.asList(array);
其他回答
还有一种方法可以用于将数组转换为ArrayList。您可以遍历数组并将每个索引插入ArrayList中,然后将其返回到ArrayList。
如下所示。
public static void main(String[] args) {
String[] array = {new String("David"), new String("John"), new String("Mike")};
ArrayList<String> theArrayList = convertToArrayList(array);
}
private static ArrayList<String> convertToArrayList(String[] array) {
ArrayList<String> convertedArray = new ArrayList<String>();
for (String element : array) {
convertedArray.add(element);
}
return convertedArray;
}
如果我们看到Arrays.asList()方法的定义,您将得到如下结果:public static<T>List<T>asList(T…a)//varargs为T类型。因此,您可以这样初始化arraylist:List<Element>arraylist=Arrays.asList(新元素(1),新元素(2),新元素元素(3));注意:每个新元素(int args)将被视为单个对象,并可以作为var args传递。这个问题也可能有另一个答案。如果您看到java.util.Collections.addAll()方法的声明,您将得到如下结果:public static<T>boolean addAll(集合<?super T>c,T…a);因此,这段代码也很有用Collections.addAll(arraylist,array);
使用Stream(从java 16开始)
new ArrayList<>(Arrays.stream(array).toList());
// Guava
import com.google.common.collect.ListsLists
...
List<String> list = Lists.newArrayList(aStringArray);
您也可以使用Java8中的流来实现这一点。
List<Element> elements = Arrays.stream(array).collect(Collectors.toList());