¿Hay alguna manera de convertir una lista de enteros en una matriz de enteros (no enteros)? Algo como List to int []? Sin pasar por la lista y convertir manualmente el intger a int.Conversión de la lista de enteros a la matriz int
Respuesta
Estoy seguro de que puede encontrar algo en una biblioteca de terceros, pero no creo que haya nada integrado en las bibliotecas estándar de Java.
Le sugiero que solo escriba una función de utilidad para hacerlo, a menos que necesite muchas funcionalidades similares (en cuyo caso, valdría la pena encontrar la biblioteca de terceros correspondiente). Tenga en cuenta que deberá averiguar qué hacer con una referencia nula en la lista, que claramente no se puede representar con precisión en la matriz int.
@Downvoter: ¿me gustaría comentar? –
No :)
Necesita iterar por la lista. No debería ser muy doloroso.
Puede utilizar el toArray
para obtener una matriz de Integers
, ArrayUtils
de los bienes comunes de Apache para convertirlo en un int[]
.
List<Integer> integerList = new ArrayList<Integer>();
Integer[] integerArray = integerList.toArray(new Integer[0]);
int[] intArray = ArrayUtils.toPrimitive(integerArray);
Recursos:
- Apache commons -
ArrayUtils.toPrimitive(Integer[])
- Apache commons lang
- Javadoc -
Collection.toArray(T[])
Sobre el mismo tema:
+1, estaba a punto de publicar lo mismo. :-) – missingfaktor
Hay un error tipográfico, debería ser 'ArrayUtils'. – gpeche
Tienes razón, gracias. –
Aquí es un método de utilidad que convierte una colección de enteros en una matriz de enteros. Si la entrada es nula, se devuelve null. Si la entrada contiene valores nulos, se crea una copia defensiva, quitándole todos los valores nulos. La colección original no se modifica.
public static int[] toIntArray(final Collection<Integer> data){
int[] result;
// null result for null input
if(data == null){
result = null;
// empty array for empty collection
} else if(data.isEmpty()){
result = new int[0];
} else{
final Collection<Integer> effective;
// if data contains null make defensive copy
// and remove null values
if(data.contains(null)){
effective = new ArrayList<Integer>(data);
while(effective.remove(null)){}
// otherwise use original collection
}else{
effective = data;
}
result = new int[effective.size()];
int offset = 0;
// store values
for(final Integer i : effective){
result[offset++] = i.intValue();
}
}
return result;
}
Actualización:Guava tiene una sola línea para esta funcionalidad:
int[] array = Ints.toArray(data);
Referencia:
List<Integer> listInt = new ArrayList<Integer>();
StringBuffer strBuffer = new StringBuffer();
for(Object o:listInt){
strBuffer.append(o);
}
int [] arrayInt = new int[]{Integer.parseInt(strBuffer.toString())};
Creo que esto debería resolver su problema
- 1. Conversión de recogida de INT Matriz
- 2. Refactoring Ruby: Conversión de matriz a matriz int
- 3. la conversión de una matriz a una lista
- 4. enumeración Conversión a int
- 5. secuencia de enteros a la lista de enteros con un TryParse
- 6. Lista anidada de Java para la conversión de matriz
- 7. Advertencia "La conversión implícita pierde precisión de enteros ..."
- 8. Conversión de int a una matriz de bits en .NET
- 9. conversión entre matriz OpenCV y matriz int
- 10. conversión de int a int * a continuación, volver a int
- 11. conversión de IO Int a Int
- 12. Objetivo C int La conversión a flote
- 13. Convertir matriz int a matriz de caracteres
- 14. conversión de Campo de Bits a int
- 15. la conversión a número entero Int
- 16. Int matriz de bytes a
- 17. Conversión de JSONArray a la matriz normal
- 18. Conversión de la lista <T> a la matriz T []
- 19. Lista genérica a la conversión de EntitySet
- 20. Android: conversión de String a int
- 21. entero a matriz de enteros de C#
- 22. Java matriz a la lista de Emisión
- 23. Conversión de la lista <Integer> a la lista <String>
- 24. punteros que apuntan a la matriz de números enteros
- 25. la conversión de una lista de puntos a una matriz 2D numpy
- 26. Conversión de doble a int detrás de la escena?
- 27. C++ int para la conversión de cadenas
- 28. flotador de python en la conversión int
- 29. acelerar la "conversión base" para enteros grandes
- 30. Cómo convertir int a const int para asignar el tamaño de la matriz en la pila?
¿Cuál es el problema con el ciclo aquí? –