Java-algoritmer

I den här handledningen lär vi oss om olika algoritmer som tillhandahålls av Java-samlingsramen med hjälp av exempel.

Java-samlingsramen tillhandahåller olika algoritmer som kan användas för att manipulera element som lagras i datastrukturer.

Algoritmer i Java är statiska metoder som kan användas för att utföra olika operationer på samlingar.

Eftersom algoritmer kan användas i olika samlingar är dessa också kända som generiska algoritmer .

Låt oss se implementeringen av olika metoder som finns tillgängliga i samlingsramen.

1. Sortera med sort ()

Den sort()metod som tillhandahålls av ramen samlingar används för att sorteringselement. Till exempel,

 import java.util.ArrayList; import java.util.Collections; class Main ( public static void main(String() args) ( // Creating an array list ArrayList numbers = new ArrayList(); // Add elements numbers.add(4); numbers.add(2); numbers.add(3); System.out.println("Unsorted ArrayList: " + numbers); // Using the sort() method Collections.sort(numbers); System.out.println("Sorted ArrayList: " + numbers); ) ) 

Produktion

 Osorterad ArrayList: (4, 2, 3) Sorterad ArrayList: (2, 3, 4) 

Här sker sorteringen i naturlig ordning (stigande ordning). Vi kan dock anpassa sort()metodens sorteringsordning med hjälp av Comparator-gränssnittet.

För att lära dig mer, besök Java Sorting.

2. Blanda med blanda ()

Den shuffle()metod för samlingar ram Java används för att förstöra någon form av ordning är närvarande i datastrukturen. Det gör precis motsatsen till sorteringen. Till exempel,

 import java.util.ArrayList; import java.util.Collections; class Main ( public static void main(String() args) ( // Creating an array list ArrayList numbers = new ArrayList(); // Add elements numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("Sorted ArrayList: " + numbers); // Using the shuffle() method Collections.shuffle(numbers); System.out.println("ArrayList using shuffle: " + numbers); ) ) 

Produktion

 Sorterad ArrayList: (1, 2, 3) ArrayList med blandning: (2, 1, 3) 

När vi kör programmet shuffle()returnerar metoden en slumpmässig utdata.

Blandningsalgoritmen används främst i spel där vi vill ha slumpmässig utdata.

3. Rutinmässig datahantering

I Java tillhandahåller samlingsramen olika metoder som kan användas för att manipulera data.

  • reverse() - vänder elementens ordning
  • fill() - ersätt varje element i en samling med det angivna värdet
  • copy() - skapar en kopia av element från den angivna källan till destinationen
  • swap() - byter plats för två element i en samling
  • addAll() - lägger till alla element i en samling till annan samling

Till exempel,

 import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); System.out.println("ArrayList1: " + numbers); // Using reverse() Collections.reverse(numbers); System.out.println("Reversed ArrayList1: " + numbers); // Using swap() Collections.swap(numbers, 0, 1); System.out.println("ArrayList1 using swap(): " + numbers); ArrayList newNumbers = new ArrayList(); // Using addAll newNumbers.addAll(numbers); System.out.println("ArrayList2 using addAll(): " + newNumbers); // Using fill() Collections.fill(numbers, 0); System.out.println("ArrayList1 using fill(): " + numbers); // Using copy() Collections.copy(newNumbers, numbers); System.out.println("ArrayList2 using copy(): " + newNumbers); ) ) 

Produktion

 ArrayList1: (1, 2) Omvänd ArrayList1: (2, 1) ArrayList1 med swap (): (1, 2) ArrayList2 med addALl (): (1, 2) ArrayList1 med fill (): (0, 0) ArrayList2 med kopia (): (0, 0) 

Obs! När du utför copy()metoden ska båda listorna vara av samma storlek.

4. Söka med binärsökning ()

Den binarySearch()metod för Java samlingar ram söker efter det angivna elementet. Den returnerar elementets position i de angivna samlingarna. Till exempel,

 import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); // Using binarySearch() int pos = Collections.binarySearch(numbers, 3); System.out.println("The position of 3 is " + pos); ) ) 

Produktion

 Positionen för 3 är 2. 

Obs! Samlingen ska sorteras innan binarySearch()metoden utförs .

För att veta mer, besök Java Binary Search.

5. Sammansättning

  • frequency() - returnerar antalet gånger ett element finns i samlingen
  • disjoint() - kontrollerar om två samlingar innehåller något vanligt element

Till exempel,

 import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(2); System.out.println("ArrayList1: " + numbers); int count = Collections.frequency(numbers, 2); System.out.println("Count of 2: " + count); ArrayList newNumbers = new ArrayList(); newNumbers.add(5); newNumbers.add(6); System.out.println("ArrayList2: " + newNumbers); boolean value = Collections.disjoint(numbers, newNumbers); System.out.println("Two lists are disjoint: " + value); ) ) 

Produktion

 ArrayList1: (1, 2, 3, 2) Antal av 2: 2 ArrayList2: (5, 6) Två listor är ojämna: sant 

6. Hitta extrema värden

De min()och max()metoder för samlingar ramen för Java används för att hitta de lägsta och de högsta elementen, respektive. Till exempel,

 import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); // Using min() int min = Collections.min(numbers); System.out.println("Minimum Element: " + min); // Using max() int max = Collections.max(numbers); System.out.println("Maximum Element: " + max); ) ) 

Produktion

 Minsta element: 1 Maximal element: 3 

Intressanta artiklar...