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.