java中是否有用于将ArrayList转换为对象数组的命令。我知道如何将每个对象从arrayList复制到对象数组中,但我想知道它是否会自动完成。
我想要这样的事情:
ArrayList<TypeA> a;
// Let's imagine "a" was filled with TypeA objects
TypeA[] array = MagicalCommand(a);
答案 0 :(得分:92)
标准Collection.toArray(T[])之类的内容应该符合您的要求(请注意ArrayList
实现Collection
):
TypeA[] array = a.toArray(new TypeA[a.size()]);
另外,您应该考虑将a
定义为类型List<TypeA>
而不是ArrayList<TypeA>
,这样可以避免某些特定于实现的定义,这些定义可能并不适用于您的应用程序。
此外,请参阅this question,了解使用a.size()
代替0
作为传递给a.toArray(TypeA[])
的数组的大小
答案 1 :(得分:9)
您可以使用此代码
ArrayList<TypeA> a = new ArrayList<TypeA>();
Object[] o = a.toArray();
然后,如果你想让那个对象回到TypeA,只需用instanceOf方法检查它。
答案 2 :(得分:7)
是。 ArrayList
有toArray()
方法。
http://java.sun.com/javase/6/docs/api/java/util/ArrayList.html
答案 3 :(得分:2)
将ArrayList转换为对象 阵列
ArrayList有一个构造函数,它接受一个Collection,所以常见 成语是:
List<T> list = new ArrayList<T>(Arrays.asList(array));
构造数组创建的列表的副本。
现在,Arrays.asList(array)
将包装数组,因此更改列表
会影响阵列,反之亦然。虽然您无法添加或删除
答案 4 :(得分:1)
TypeA[] array = (TypeA[]) a.toArray();
答案 5 :(得分:-1)
使用这些库:
使用此代码:
List<Object[]> testNovedads = crudService.createNativeQuery(
"SELECT cantidad, id FROM NOVEDADES GROUP BY id ");
Gson gson = new Gson();
String json = gson.toJson(new TestNovedad());
JSONObject jsonObject = new JSONObject(json);
Collection<TestNovedad> novedads = new ArrayList<>();
for (Object[] object : testNovedads) {
Iterator<String> iterator = jsonObject.keys();
int pos = 0;
for (Iterator i = iterator; i.hasNext();) {
jsonObject.put((String) i.next(), object[pos++]);
}
novedads.add(gson.fromJson(jsonObject.toString(), TestNovedad.class));
}
for (TestNovedad testNovedad : novedads) {
System.out.println(testNovedad.toString());
}
/**
* Autores: Chalo Mejia
* Fecha: 01/10/2020
*/
package org.main;
import java.io.Serializable;
public class TestNovedad implements Serializable {
private static final long serialVersionUID = -6362794385792247263L;
private int id;
private int cantidad;
public TestNovedad() {
// TODO Auto-generated constructor stub
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getCantidad() {
return cantidad;
}
public void setCantidad(int cantidad) {
this.cantidad = cantidad;
}
@Override
public String toString() {
return "TestNovedad [id=" + id + ", cantidad=" + cantidad + "]";
}
}