studio sort ordenar objetos metodo forma fechas descendente con burbuja array java

sort - ordenar un array java



¿Cómo ordenar ArrayList<Long> en Java en orden decreciente? (10)

Java 8

hacer esto en Java 8 es muy divertido y fácil

Collections.sort(variants,(a,b)->a.compareTo(b)); Collections.reverse(variants);

Lambda expresiones rock aquí!

en caso de que necesite una lógica de más de una línea para comparar ayb , podría escribirlo así

Collections.sort(variants,(a,b)->{ int result = a.compareTo(b); return result; });

¿Cómo ordenar ArrayList en Java en orden decreciente?


Al usar Collections.sort() con un comparador que proporciona el orden decreciente. Ver Javadoc para Collections.sort .



El siguiente enfoque ordenará la lista en orden descendente y también maneja los valores '' nulos '', por si acaso, si tiene valores nulos, entonces Collections.sort () arrojará NullPointerException

Collections.sort(list, new Comparator<Long>() { public int compare(Long o1, Long o2) { return o1==null?Integer.MAX_VALUE:o2==null?Integer.MIN_VALUE:o2.compareTo(o1); } });


Ordenar, luego invertir.


Puede usar el siguiente código que se proporciona a continuación;

Collections.sort(list, Collections.reverseOrder());

o si va a utilizar un comparador personalizado, puede usarlo como se indica a continuación

Collections.sort(list, Collections.reverseOrder(new CustomComparator());

Donde CustomComparator es una clase de comparación que compara el objeto que está presente en la lista.


También puede ordenar una ArrayList con un TreeSet lugar de un comparator . Aquí hay un ejemplo de una pregunta que tuve antes para una matriz de enteros. Estoy usando "números" como nombre de marcador de posición para ArrayList .

import.java.util.*; class MyClass{ public static void main(String[] args){ Scanner input = new Scanner(System.in); ArrayList<Integer> numbers = new ArrayList<Integer>(); TreeSet<Integer> ts = new TreeSet<Integer>(numbers); numbers = new ArrayList<Integer>(ts); System.out.println("/nThe numbers in ascending order are:"); for(int i=0; i<numbers.size(); i++) System.out.print(numbers.get(i).intValue()+" "); System.out.println("/nThe numbers in descending order are:"); for(int i=numbers.size()-1; i>=0; i--) System.out.print(numbers.get(i).intValue()+" "); } }


Un enfoque más general para implementar nuestro propio Comparador como se muestra a continuación

Collections.sort(lst,new Comparator<Long>(){ public int compare(Long o1, Long o2) { return o2.compareTo(o1); } });


Aquí hay una forma para su list :

Collections.sort(list); Collections.reverse(list);

O puede implementar su propio Comparator para ordenar y eliminar el paso inverso:

Collections.sort(list, new Comparator<Long>() { public int compare(Long o1, Long o2) { return o2.compareTo(o1); } });

O incluso más simplemente use Collections.reverseOrder() ya que solo está invirtiendo:

Collections.sort(list, Collections.reverseOrder());


Comparator<Long> comparator = Collections.reverseOrder(); Collections.sort(arrayList, comparator);