java:jfc_algorithms

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
java:jfc_algorithms [2015/03/17 14:34]
gthanos
java:jfc_algorithms [2020/03/17 06:25]
gthanos
Line 1: Line 1:
 ====== Αλγόριθμοι ====== ====== Αλγόριθμοι ======
  
-Οι βασικοί αλγόριθμοι του JFC υλοποιούνται στην κλάση [[http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html|Collections]].+Οι βασικοί αλγόριθμοι του Java Collections Framework υλοποιούνται στις κλάσεις [[http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html|java.util.Collections]] (για collections) και [[https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html|java.util.Arrays]] (για πίνακες). Παρακάτω θα δούμε ενδεικτικά παραδείγματα αλγορίθμων από την κλάση [[http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html|java.util.Collections]]. Ανάλογους αλγορίθμους που εφαρμόζονται σε πίνακες παρέχει και η κλάση [[https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html|java.util.Arrays]]
  
-  * **sorting:** [[java:jfc_intf_sort|(δείτε τα παραδείγματα)]]. (N Log(nperformance).+  * **sorting:** (performance NxLog(Ν)).
 <code java Sort.java> <code java Sort.java>
 import java.util.*; import java.util.*;
Line 16: Line 16:
 </code> </code>
  
-  * **shuffling νακάτεμα):** shuffle(List<?> list) ή shuffle(List<?> list, Random rnd).+  * **shuffling: ** Ανακατεύει στα στοιχεία της λίστας σε τυχαία σειρά.
 <code java Shuffle.java> <code java Shuffle.java>
 import java.util.*; import java.util.*;
Line 28: Line 28:
 } }
 </code> </code>
-  * **reverse:**+  * **reverse:** Αντιστρέφει στα στοιχεία της λίστας.
 <code java Reverse.java> <code java Reverse.java>
 import java.util.*; import java.util.*;
Line 40: Line 40:
 } }
 </code> </code>
-  * **fill:**+  * **fill:** Γεμίζει όλα τα στοιχεία της λίστας με ένα συγκεκριμένο στοιχείο.
 <code java Fill.java> <code java Fill.java>
 import java.util.*; import java.util.*;
Line 53: Line 53:
 } }
 </code> </code>
-  * **copy:**+  * **copy:** Αντιγράφει την μία λίστα πάνω στην άλλη. Εάν η λίστα προορισμού έχει περισσότερα στοιχεία από την αρχική λίστα, τα τελευταία στοιχεία της λίστας προορισμού μένουν ως έχουν. Η αρχική λίστα παραμένει αμετάβλητη, επομένως κάθε κοινό στοιχείο πλέον διαθέτει τουλάχιστον δύο δείκτες προς αυτό, έναν δείκτη από την αρχική λίστα και ένα δείκτη από τη λίστα προορισμού.
 <code java Copy.java> <code java Copy.java>
- 
 import java.util.*; import java.util.*;
  
 public class Copy { public class Copy {
-   public static void main(String args[]) { +  public static void main(String args[]) { 
-      // create two lists     +    // create two lists   
-      List<String> srclst = new ArrayList<String>(5); +    List<String> srclst = new ArrayList<String>(5); 
-      List<String> destlst = new ArrayList<String>(10); +    List<String> destlst = new ArrayList<String>(10); 
-       +     
-      // populate two lists +    // populate two lists 
-      srclst.add("Java"); +    srclst.add("Java"); 
-      srclst.add("is"); +    srclst.add("is"); 
-      srclst.add("best"); +    srclst.add("best"); 
-       +     
-      destlst.add("C++"); +    destlst.add("C++"); 
-      destlst.add("is"); +    destlst.add("is"); 
-      destlst.add("older"); +    destlst.add("older"); 
-      destlst.add("and"); +    destlst.add("and"); 
-      destlst.add("fast!");       +    destlst.add("fast!");     
-       +     
-      // copy into dest list +    // copy into dest list 
-      Collections.copy(destlst, srclst);             +    Collections.copy(destlst, srclst);       
-       +     
-      System.out.println("Value of source list: "+srclst); +    System.out.println("Value of source list: "+srclst); 
-      System.out.println("Value of destination list: "+destlst); +    System.out.println("Value of destination list: "+destlst); 
-      +  } 
 +}
 </code> </code>
-  * **swap:**+  * **swap:** Αντιμεταθέτει τα στοιχεία μεταξύ δύο θέσεων της λίστας.
 <code java Swap.java> <code java Swap.java>
 import java.util.*; import java.util.*;
Line 90: Line 90:
         List<String> list = Arrays.asList(args);         List<String> list = Arrays.asList(args);
         System.out.println("List elements before swap: "+list);         System.out.println("List elements before swap: "+list);
-        Collections.swap(list);+        Collections.swap(list, 0, 2);
         System.out.println("List elements after swap: "+list);             System.out.println("List elements after swap: "+list);    
     }     }
 } }
 </code> </code>
-  * **addAll:** +  * **addAll:** Προσθέτει επιπλέον στοιχεία στη λίστα 
-  * **frequency:** +<code java addAll.java> 
 +import java.util.*; 
 + 
 +public class AddAll { 
 +    public static void main(String[] args) { 
 +        List<String> list = Arrays.asList(args); 
 +        Collections.addAll(list, "how", "are", "you?"); 
 +        System.out.println(list);     
 +    } 
 +
 +</code> 
 +  * **frequency:** Δηλώνει πόσες φορές εμφανίζεται ένα στοιχείο στην λίστα.
 <code java Frequency.java> <code java Frequency.java>
 import java.util.*; import java.util.*;
Line 122: Line 133:
 } }
 </code> </code>
 +
 +|Προηγούμενο: [[:java:jfc_intf_sorted_set_map | SortedSet και SortedMap ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java: ]] |
java/jfc_algorithms.txt · Last modified: 2020/03/17 06:27 by gthanos