¿Existe una manera simple de convertir Set<Integer>
en Set<String>
sin iterar a través de todo el conjunto?Convierta el conjunto <Integer> en el conjunto <String> en Java
Respuesta
No. Debe formatear cada número entero y agregarlo a su conjunto de cadenas.
Puede utilizar un decorador si realmente no quiere recorrer todo el conjunto
¿Puedes dar un ejemplo? No estoy familiarizado con el concepto de decoradores. – CajunLuke
¿Cómo aplicaría el patrón de decorador en este escenario? –
Si solo quisiéramos un conjunto
yo sepa, usted tiene que recorrer la colección; especialmente cuando hay una conversión implicada que no es natural. es decir, si estaba intentando convertir de Set-Timestamp a Set-Date; podrías lograr eso usando una combinación de Java Generics (ya que Timestamp se puede convertir a la fecha). Pero dado que Integer no se puede convertir a String, tendrá que iterar.
¿Por qué la calificación -1? –
Presumiblemente, alguien no estuvo de acuerdo con las respuestas "no" y siente que una envoltura/decorador es una mejor respuesta. –
Gracias por la información –
No. La mejor manera es un ciclo.
HashSet<String> strs = new HashSet<String>(ints.size());
for(Integer integer : ints)
strs.add(integer.toString());
Algo simple y relativamente rápido que es directo y expresivo es probablemente el mejor.
(Actualización :) En Java 8, se puede hacer lo mismo con una expresión lambda si desea ocultar el ciclo.
HashSet<String> strs = new HashSet<>(ints.size());
ints.forEach(i -> strs.add(i.toString()));
+1 para el ejemplo del código de limpieza. –
Quizás quisiste decir 'toString' en lugar de' stringValue';) –
@Peter Eso de hecho lo hice. Debo haber estado pensando en '.intValue()' de 'Integer'. – CajunLuke
Usted podría utilizar Commons colecciones TransformedSet o guayaba de Collections2.transform(...)
En ambos casos, el funtor que presumiblemente sólo tiene que llamar a toString de la Entero().
Puede implementar Set<String>
usted mismo y redirigir todas las llamadas al conjunto original, teniendo en cuenta las conversiones necesarias solo cuando sea necesario. Dependiendo de cómo se use el conjunto, podría funcionar significativamente mejor o significativamente peor.
private static <T> Set<T> toSet(Set<?> set) {
Set<T> setOfType = new HashSet<>(set.size());
set.forEach(ele -> {
setOfType.add((T) ele);
});
return setOfType;
}
mapa corriente de partida Java8 y recoger las habilidades:..
Establecer < String> stringSet = intSet.stream() Mapa (e -> String.valueOf (e)) recoger (Collectors.toSet());
Java 7 + Guava (presumiblemente no hay forma de cambiar a Java 8).
new HashSet<>(Collections2.transform(<your set of Integers>, Functions.toStringFunction()))
Usando Eclipse Collections con Java 8:
Set<String> strings = IntSets.mutable.with(1, 2, 3).collect(String::valueOf);
Esto no requiere el boxeo los valores int y Integer, pero se puede hacer eso también, si es necesario:
Set<String> strings = Sets.mutable.with(1, 2, 3).collect(String::valueOf);
Sets.mutable.with(1, 2, 3)
devolverá un MutableSet<Integer>
, a diferencia de IntSets.mutable.with(1, 2, 3)
que devolverá un MutableIntSet
.
Nota: soy un committer para colecciones de Eclipse.
- 1. Java: Enumeración del conjunto <String>
- 2. Convierta un conjunto de jQuery en HTML
- 3. ¿Cuál es la diferencia entre el conjunto <pair> y el mapa en C++?
- 4. Convierta una matriz a HashSet <T> en .NET
- 5. ¿Es posible convertir el conjunto de bits <8> en char en C++?
- 6. Convierta java.util.List <String> en java.sql.Array
- 7. Python Extraiga el conjunto del conjunto
- 8. Convierta un multimapa en un conjunto de conjuntos
- 9. MySQL y conjunto anidado: lenta UNEN (no mediante el índice)
- 10. ¿Por qué el conjunto F # no implementa el dispositivo SET <T>?
- 11. Lista <T> solo con un conjunto privado
- 12. Convierte conjunto de datos para IQueryable <T> o IEnumerable <T>
- 13. ¿Por qué EnumMap <T> .keySet() devuelve un conjunto <T>() y no un EnumSet <T>()?
- 14. Obtiene el conjunto de bytes de una ByteBuffer en Java
- 15. Uso del conjunto de resultados en el programa Java
- 16. colecciones Java - conjunto de claves() vs entrySet() en el mapa
- 17. ¿Existe el equivalente de un conjunto de Java en php?
- 18. ¿Cómo verificar el conjunto de caracteres de cadena en Java?
- 19. HashSet. rendimiento lento en el conjunto grande
- 20. ¿Cómo implementar el conjunto vacío - ∅?
- 21. <% $, <% @, <% =, <% # ... ¿cuál es el problema?
- 22. ¿Cuál es el nombre para el operador "<<<"?
- 23. ¿Cómo editar un conjunto <? extiende EntityProxy> con el marco GWT Editor?
- 24. conjunto de referencia de objeto en java
- 25. Eliminar elementos del conjunto en Java
- 26. ¿El conjunto en Ruby siempre conserva el orden de inserción?
- 27. Complejidad del tiempo del conjunto en Java
- 28. Conjunto multidimensional en Python
- 29. divide el conjunto en partes más pequeñas
- 30. cómo insertar en el conjunto stl?
Casi lo mismo que 'List's: http://stackoverflow.com/questions/18524/java-best-way-of-converting-listinteger-to-liststring/61663#61663 –