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
Next revision Both sides next revision
java:jfc_algorithms [2015/03/17 14:31]
gthanos
java:jfc_algorithms [2020/03/11 07:49]
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(n) performance).   * **sorting:** [[java:jfc_intf_sort|(δείτε τα παραδείγματα)]]. (N Log(n) performance).
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 52: Line 52:
     }     }
 } }
-  * **copy:**+</code> 
 +  * **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> 
 +  * **swap:** Αντιμεταθέτει τα στοιχεία μεταξύ δύο θέσεων της λίστας. 
 +<code java Swap.java> 
 +import java.util.*; 
 + 
 +public class Swap { 
 +    public static void main(String[] args) { 
 +        List<String> list = Arrays.asList(args); 
 +        System.out.println("List elements before swap: "+list); 
 +        Collections.swap(list, 0, 2); 
 +        System.out.println("List elements after swap: "+list);     
 +    } 
 +
 +</code> 
 +  * **addAll:** Προσθέτει επιπλέον στοιχεία στη λίστα 
 +<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> </code>
-  * **swap:** +  * **frequency:** Δηλώνει πόσες φορές εμφανίζεται ένα στοιχείο στην λίστα.
-  * **addAll:** +
-  * **frequency:** +
 <code java Frequency.java> <code java Frequency.java>
 import java.util.*; import java.util.*;
Line 94: Line 118:
     }     }
 } }
 +</code>
  
   * **min:**   * **min:**
Line 107: Line 132:
     }     }
 } }
 +</code>
  
 +|Προηγούμενο: [[:java:jfc_intf_sorted_set_map | SortedSet και SortedMap ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java: ]] |
java/jfc_algorithms.txt · Last modified: 2020/03/17 06:27 by gthanos