Java >> Java tutorial >  >> Tag >> ArrayList

Hvordan sorteres Array, ArrayList, String, List, Map og Set i Java?

Sortering er en væsentlig del af ethvert programmeringssprog. Java er uden tvivl et af de bedste programmeringssprog. Den har forskellige funktioner, der gør det nemt! Denne artikel hjælper dig med at udfolde alt om sortering i Java, især sortering Array, ArrayList, String, List, Map og Set i Java.

Nedenstående emner er dækket i denne sorteringsartikel:

  • Sortér Array i Java
  • Array vs ArrayList
  • Sortér ArrayList
  • Sorteringsstreng
  • Sorter en liste
  • Sorter et kort
    • Sortér et kort efter nøgle
    • Sortér et kort efter værdi
  • Sorter et sæt i Java

Lad os begynde. :-)

Sortér Array i Java

Arrays i Java gemmer en eller flere værdier af en specifik datatype og giver indekseret adgang til at gemme det samme i en enkelt variabel. Lad os se på nedenstående program for at sortere et array i Java i stigende rækkefølge. Sørg dog for, at du har Java installeret.

Sortér Array i Java – Stigende rækkefølge


package Edureka;

import java.util.Arrays;

public class SortArray
{ 
public static void main(String[] args) 
{ 
int[] arr = {52,12,2,72,4}; // array of 5 elements
Arrays.sort(arr); 
System.out.printf("Sorted arr[] = %s", 
Arrays.toString(arr)); 
} 
}

Output – Sorteret arr[] =[2, 4, 12, 52, 72]

Sortér Array i Java – faldende rækkefølge


package Edureka;

import java.util.Arrays;
import java.util.Collections;

public class SortArray
{
public static void main(String[] args)
{
Integer[] arr = {52,12,2,72,4}; // used Integer[] instead of int as collections
Arrays.sort(arr, Collections.reverseOrder()); // reverseorder() for descending order
System.out.printf("Sorted arr[] = %s",
Arrays.toString(arr));
}
}

Output: Sorteret arr[] =[72, 52, 12, 4, 2]

Bemærk: I ovenstående kode har jeg brugt Integer[] array i stedet for int på grund af samlinger. Dette skyldes, at reverseOrder() ikke understøtter primitive typer.

Mange mennesker forveksler med begrebet arrays og ArrayList i Java. Nedenstående tabel kan fjerne alle dine tvivl.

Array ArrayList

Det er af fast længde

Den har variabel længde (dynamisk i størrelse)

Understøtter kun primitive data -type

Kan tilføje forskellige objekter og data til listen

Understøtter ikke en dublet tilføjelse

Tillader tilføjelse af duplikerede elementer

Kan kun krydse i en fremadgående retning

Kan køre både fremad og bagud

Størrelsen kan ikke ændres dynamisk

Størrelsen kan ændres dynamisk


Jeg håber, du er klaret med forskellen, lad os gå videre og se, hvordan du sorterer ArrayList i Java.

Sorter ArrayList i Java (String)

Sortering af ArrayList i Java kan nemt gøres ved at bruge en simpel sort() metode . Se nedenstående kode for at sortere ArrayList i Java.


package Edureka;

import java.util.Arrays; 
import java.util.Collections;
import java.util.*;

public class sortingarraylist
{	  
    public static void main(String args[]) 
	    {  
	        ArrayList<String>
	            list = new ArrayList<String>(); 
	  
	     // Populate the ArrayList
	     list.add("sorting");
	     list.add("java");
	     list.add("arraylist");
	     list.add("in"); 
	     System.out.println("Unsorted ArrayList: "
	                           + list); // printed unsorted arraylist
	     Collections.sort(list); // sort method for ascending order  
	  
	     System.out.println("Sorted ArrayList "
	                           + "in Ascending order : "
	                           + list); // print sorted arraylist
	    } 
	} 

Output –

Usorteret ArrayList:[sortering, java, arraylist, i]
Sorteret ArrayList i stigende rækkefølge:[arraylist, in, java, sortering]

For at gå videre med sortering i Java-artiklen, lad os se, hvordan du kan sortere heltal. Lad os prøve at implementere sortering ved hjælp af en anden metode, dvs. ved hjælp af Collections.sort()-metoden.

Sorter ArrayList i Java ved hjælp af samlinger (heltal)

Du kan sortere Integer ArrayList ved hjælp af Collections.sort() metoden.

package Edureka;

import java.util.Arrays; 
import java.util.Collections;
import java.util.*;

public class SortingArrayList
{	
	public static void main(String args[]){
	   ArrayList<Integer> arraylist = new ArrayList<Integer>();
	   arraylist.add(48);
	   arraylist.add(2);
	   arraylist.add(19);
	   arraylist.add(22);
	   System.out.println("Before Sorting:"); // before sorting
	   for(int counter: arraylist){
			System.out.println(counter);
		}

	   Collections.sort(arraylist); // function to sort in ascending order 

	   System.out.println("After Sorting:"); // after sorting
	   for(int counter: arraylist){
			System.out.println(counter);
		}
	}
}
 

Output –
Før sortering:
48
2
19
22
Efter sortering:
2
19
22
48

Sorter streng i Java

String i Java er uforanderlig. Der er ingen direkte metode til at sortere en streng i Java. Du kan bruge Arrays, som har en metode CharArray(), der vil skabe en char-inputstreng, og ved at bruge en anden metode (Arrays.sort(char c[]), kan vi nemt sortere.

package Edureka;

import java.util.Arrays; 
import java.util.Collections;
import java.util.*;

public class SortingString
{	
    public static String sortString(String inputString) 
    { 
        char Array1[] = inputString.toCharArray(); // converting input string to char array 
           
        Arrays.sort(Array1); 
          
        return new String(Array1); // return sorted string
    } 
      
    public static void main(String[] args) 
    { 
        String inputString = "Edureka"; 
        String outputString = sortString(inputString); 
          
        System.out.println("Input String : " + inputString); 
        System.out.println("Output String : " + outputString); 
    } 
}  

Output –
Inputstreng:Edureka
Outputstreng :Eadekru

Sortér en liste i Java

For at sortere en liste i Java kan du bruge metoden Collections.sort(). Se følgende kode for mere forståelse:

package Edureka;

import java.util.Arrays; 
import java.util.Collections;
import java.util.*;

public class SortingList
{	
	public static void main(String[] args) 
    
	{
		Integer[] digits = new Integer[] {12,56,89,27,22,4,88,65,36};
    	List<Integer> digitsList = Arrays.asList(digits);
    	
    	
    	Collections.sort(digitsList); // sorted list
    	 
    	System.out.println("Sorted String :" +digitsList);
    } 
}    

Output :Sorteret streng :[4, 12, 22, 27, 36, 56, 65, 88, 89]

Sorter et kort i Java

Et kort i Java hører til Java-samlingen, som indeholder nøgleværdi-par. Derfor kan et kort sorteres på to forskellige måder:

  • Sortér efter nøgle
  • Sortér efter værdi

Sortér efter nøgle:

package Edureka;

import java.util.Arrays; 
import java.util.Collections;
import java.util.*;

public class SortingMap
{	
	public static void main(String[] args) 
    
	{
		HashMap<Integer, String> map = new HashMap<>();
        
		map.put(14, "Aayushi");
		map.put(2, "Rachit");
		map.put(30, "Amit");
		map.put(5, "Anamika");
		 
		TreeMap<Integer, String> treeMap = new TreeMap<>(map);
		 
		System.out.println(treeMap);
    } 
}    

Output: {2=Rachit, 5=Anamika, 14=Aayushi, 30=Amit}

Sortér efter værdi:

package Edureka;

import java.util.Arrays; 
import java.util.Collections;
import java.util.*;

public class SortingMap  
{	
	public static void main(String[] args) 
    
	{
		HashMap<Integer, String> unSortedMap = new HashMap<>();
    
	unSortedMap.put(14, "Aayushi");
	unSortedMap.put(20, "Rachit");
	unSortedMap.put(60, "Amit");
	unSortedMap.put(70, "Anamika");
	 
	LinkedHashMap<Integer, String> sortedMap = new LinkedHashMap<>();
	 
	unSortedMap.entrySet()
	    .stream()
	    .sorted(Map.Entry.comparingByValue())
	    .forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue()));
	 
	System.out.println(sortedMap);
	}
}    

Output: {14=Aayushi, 60=Amit, 70=Anamika, 20=Rachit}

Vi går videre med sortering i Java, lad os tage det sidste emne op, dvs. sortere et sæt i Java.

Sorter sæt i Java

Et sæt i Java er en grænseflade, der udvider samlinger. Det er en uordnet samling af objekter, som ikke gemmer duplikerede værdier. Nu er der ingen direkte metode til at sortere et sæt i Java. For nu at sortere et sæt, skal du konvertere et sæt til List og derefter bruge collections.sort() API og igen konvertere listen tilbage til et sæt. Se nedenstående kode for mere forståelse:

package Edureka;

import java.util.Arrays; 
import java.util.Collections;
import java.util.*;

public class SortSet
{	
	public static void main(String[] args) 
    
	{
		//Unsorted list
		HashSet<Integer> numbersSet = new LinkedHashSet<>(
		        Arrays.asList(12,56,89,27,22,4,88,65,36) );
		 
		List<Integer> numbersList = new ArrayList<Integer>(numbersSet);  //convert set to list
		 
		//Sort the list
		Collections.sort(numbersList);
		 
		numbersSet = new LinkedHashSet<>(numbersList);  //convert list to set
		 
		//Print set to confirm
		System.out.println(numbersSet);
	}
}    

Output :[4, 12, 22, 27, 36, 56, 65, 88, 89]

Dette bringer os til slutningen af ​​vores blog om sortering i Java, hvor du har lært at sortere Array, ArrayList, String, Map og Set i Java. Jeg håber, du fandt denne blog informativ og tilføjede værdi til din viden.

Sørg for, at du øver dig så meget som muligt, og vend din oplevelse tilbage.

Tjek Java-certificeringen Træning af Edureka, en betroet online læringsvirksomhed med et netværk af mere end 250.000 tilfredse elever spredt over hele kloden. Edurekas Java J2EE og SOA trænings- og certificeringskursus er designet til studerende og professionelle, der ønsker at være Java-udvikler. Kurset er designet til at give dig et forspring i Java-programmering og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-frameworks som Hibernate &Spring.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne 'Sortering i Java:Array, ArrayList, String, Map og Set i Java', så vender vi tilbage til dig så hurtigt som muligt.


Java tag