Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

211
Views
JAVA: cómo reducir el tamaño del código, cuando se usa lambda para procesar los elementos de la matriz

Debo ordenar cada elemento de la matriz, en orden alfabético

entrada: [bcdef, dbaqc, abcde, omadd, bbbbb] salida: [bcdef, abcdq, abcde, addmo, bbbbb]

Escribí el código a continuación, pero lo siento detallado (largo).

¿Podría decirme de otra manera, con un código más corto?

Gracias.

 import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import static java.lang.String.copyValueOf; public class Main { public static void main(String[] args) { String[] stringsArray = { "bcdef", "dbaqc", "abcde", "omadd", "bbbbb"}; System.out.println(Arrays.toString(stringsArray)); List<String> list = Arrays.stream(stringsArray).map((String s)->{ char[] charArray = s.toCharArray(); Arrays.sort(charArray); return copyValueOf(charArray); }).collect(Collectors.toList()); ArrayList<String> arrayList = new ArrayList<String>(list); stringsArray = Arrays.copyOf(arrayList.toArray(),arrayList.size(),String[].class); System.out.println(Arrays.toString(stringsArray)); } }
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Si desea modificar la matriz original en el lugar, puede confiar en Arrays.asList() , que crea un contenedor de List alrededor de la matriz:

 Arrays.asList(stringsArray) .replaceAll(s -> { char[] chars = s.toCharArray(); Arrays.sort(chars); return new String(chars); }); System.out.println(Arrays.toString(stringsArray));

Arrays.asList() es realmente solo una vista de la matriz original. Cualquier cambio en la lista devuelta se realizará en la matriz y viceversa. Esta es también la razón por la que no puede agregar/eliminar elementos en la lista devuelta.

over 4 years ago · Santiago Trujillo Report

0

Parece que desea ordenar los caracteres dentro de cada elemento, no en toda la matriz.

Puede simplificar al tener map() separados (y peek() ya que el método Arrays.sort() no devuelve un valor) pasos. También puede omitir la List redundante recopilando directamente en una matriz de String .

 String[] sorted = Arrays.stream(stringsArray) .map(String::toCharArray) .peek(Arrays::sort) .map(String::new) .toArray(String[]::new);
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!