Java-algoritmer

I denne vejledning lærer vi om forskellige algoritmer, der leveres af Java-samlingens ramme ved hjælp af eksempler.

Java-samlingsrammerne indeholder forskellige algoritmer, der kan bruges til at manipulere elementer, der er gemt i datastrukturer.

Algoritmer i Java er statiske metoder, der kan bruges til at udføre forskellige operationer på samlinger.

Da algoritmer kan bruges på forskellige samlinger, er disse også kendt som generiske algoritmer .

Lad os se implementeringen af ​​forskellige metoder, der er tilgængelige i samlingens ramme.

1. Sortering ved hjælp af sort ()

Den sort()metode, som den rammer samlinger bruges til at sortere elementer. For eksempel,

 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

 Usorteret ArrayList: (4, 2, 3) Sorteret ArrayList: (2, 3, 4) 

Her finder sorteringen sted i naturlig rækkefølge (stigende rækkefølge). Vi kan dog tilpasse sort()metodens sorteringsrækkefølge ved hjælp af Comparator-grænsefladen.

For at lære mere, besøg Java Sorting.

2. Bland ved hjælp af bland ()

Den shuffle()metode Java kollektioner rammer bruges til at ødelægge enhver form for orden til stede i datastrukturen. Det gør lige det modsatte af sorteringen. For eksempel,

 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

 Sorteret ArrayList: (1, 2, 3) ArrayList ved hjælp af shuffle: (2, 1, 3) 

Når vi kører programmet, shuffle()returnerer metoden et tilfældigt output.

Blandealgoritmen bruges hovedsageligt i spil, hvor vi vil have tilfældig output.

3. Rutinemæssig datamanipulation

I Java giver samlingerammen forskellige metoder, der kan bruges til at manipulere data.

  • reverse() - vender rækkefølgen af ​​elementer
  • fill() - udskift hvert element i en samling med den angivne værdi
  • copy() - opretter en kopi af elementer fra den angivne kilde til destinationen
  • swap() - bytter placeringen af ​​to elementer i en samling
  • addAll() - føjer alle elementerne i en samling til anden samling

For eksempel,

 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) Omvendt ArrayList1: (2, 1) ArrayList1 Brug swap (): (1, 2) ArrayList2 ved hjælp af addALl (): (1, 2) ArrayList1 ved hjælp af fill (): (0, 0) ArrayList2 ved hjælp kopi (): (0, 0) 

Bemærk : Under udførelsen af copy()metoden skal begge lister have samme størrelse.

4. Søgning ved hjælp af binærsøgning ()

Den binarySearch()metode Java kollektioner rammebetingelser søger efter det angivne element. Det returnerer elementets position i de angivne samlinger. For eksempel,

 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 på 3 er 2. 

Bemærk : Samlingen skal sorteres, før binarySearch()metoden udføres .

Hvis du vil vide mere, skal du besøge Java Binary Search.

5. Sammensætning

  • frequency() - returnerer antallet af gange, et element er til stede i samlingen
  • disjoint() - kontrollerer, om to samlinger indeholder noget fælles element

For eksempel,

 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) Count of 2: 2 ArrayList2: (5, 6) To lister er adskilt: sand 

6. Find ekstreme værdier

De min()og max()metoder Java kollektioner rammer bruges til at finde den mindste og den maksimale elementer, hhv. For eksempel,

 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

 Minimumselement: 1 Maksimumelement: 3 

Interessante artikler...