Si të renditni një listë në Java


Ndonjëherë ne duhet të renditim një listë në Java përpara se të përpunojmë elementët e saj. Në këtë tutorial, ne do të mësojmë se si të renditim një listë në rendin natyror. Ne gjithashtu do të mësojmë se si të përdorim zbatimin tonë të Krahasuesit për të renditur një listë të objekteve. Lista Java është e ngjashme me vargjet, përveç se gjatësia e listës është dinamike dhe vjen në LinkedList etj.

Lista e renditjes Java

Këtu do të mësojmë se si të renditim një listë të objekteve në Java. Ne mund të përdorim metodën Collections.sort() për të renditur një listë në rendin natyror rritës. Të gjithë elementët në listë duhet të zbatojnë ndërfaqen e krahasueshme, përndryshe do të hidhet IllegalArgumentException. Le të shohim një shembull të shpejtë për të renditur një listë të vargjeve.

package com.journaldev.sort;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class JavaListSort {

    /**
     * This class shows how to sort ArrayList in java
     * @param args
     */
    public static void main(String[] args) {
        List<String> strList = new ArrayList<String>();
        strList.add("A");
        strList.add("C");
        strList.add("B");
        strList.add("Z");
        strList.add("E");
        //using Collections.sort() to sort ArrayList
        Collections.sort(strList);
        for(String str: strList) System.out.print(" "+str);
    }

}

Siç mund ta shihni se ne po përdorim metodën Collections.sort() për të renditur listën e vargjeve. Klasa String zbaton ndërfaqen E krahasueshme. Prodhimi:

Lista e renditjes Java e objekteve

Le të shohim një shembull tjetër ku do të renditim një listë të objekteve të personalizuara. Vini re se klasa duhet të zbatojë ndërfaqen e krahasueshme.

package com.journaldev.sort;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class JavaSortListObject {

	public static void main(String[] args) {
		List<Data> dl = new ArrayList<>();
		dl.add(new Data(2));
		dl.add(new Data(3));
		dl.add(new Data(1));
		System.out.println("Original List::"+dl);
		Collections.sort(dl);
		System.out.println("Naturally Sorted List::"+dl);

	}

}

class Data implements Comparable<Data> {

	private int id;

	public Data(int i) {
		this.id = i;
	}

	@Override
	public int compareTo(Data d) {
		return this.id - d.getId();
	}

	public int getId() {
		return id;
	}

	@Override
	public String toString() {
		return "Data{"+this.id+"}";
	}
}

Prodhimi:

Original List::[Data{2}, Data{3}, Data{1}]
Naturally Sorted List::[Data{1}, Data{2}, Data{3}]

Rendit një listë në Java duke përdorur Krahasuesin

Metoda Collections.sort() është e mbingarkuar dhe ne gjithashtu mund të ofrojmë shprehjet tona lambda për të shkruar zbatimin e saj në një rresht të vetëm.

Collections.sort(dl, (d1, d2) -> {
	return d2.getId() - d1.getId();
});
System.out.println("Reverse Sorted List using Comparator::" + dl);

Prodhimi:

Përmbledhje

Metoda sort() e klasës së koleksioneve përdoret për të renditur një listë në Java. Ne mund të renditim një listë në renditje natyrale ku elementët e listës duhet të zbatojnë ndërfaqen e krahasueshme. Ne gjithashtu mund të kalojmë një zbatim krahasues për të përcaktuar rregullat e renditjes.

Mund të shikoni më shumë shembuj nga depoja jonë e GitHub.

Referenca: API Doc