User Tools

Site Tools


java:anon_inner_classes

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
java:anon_inner_classes [2021/04/12 06:21] gthanosjava:anon_inner_classes [2023/03/23 20:43] (current) – [Παράδειγμα - Ανώνυμη εμφωλευμένη κλάση ως υλοποίηση ενός interface] gthanos
Line 54: Line 54:
     Collections.sort(students, new Comparator<Student>() {     Collections.sort(students, new Comparator<Student>() {
         public int compare(Student st1, Student st2) {         public int compare(Student st1, Student st2) {
-          int cmp = cmp = st1.AEM - st2.AEM;+          int cmp = st1.AEM - st2.AEM;
           if(cmp==0)           if(cmp==0)
             cmp = st1.lastName.compareTo(st2.lastName);                         cmp = st1.lastName.compareTo(st2.lastName);            
Line 67: Line 67:
 </code> </code>
  
-Στη μέθοδο **//main//** διαβάζουμε από το αρχείο students.txt και καταχωρούμε το περιεχόμενο του σε μία λίστα (ArrayList<Student>). Στη συνέχεια εκτυπώνουμε τα στοιχεία της λίστας+Στη μέθοδο **//main//** διαβάζουμε από το αρχείο **students.txt** και καταχωρούμε το περιεχόμενο του σε μία λίστα (**ArrayList<Student>**). Στη συνέχεια εκτυπώνουμε τα στοιχεία της λίστας
   * με τη σειρά που τα διαβάσαμε   * με τη σειρά που τα διαβάσαμε
   * με λεξικογραφική σειρά.   * με λεξικογραφική σειρά.
Line 85: Line 85:
 </code> </code>
  
-<code java>+<code java SortListOfStudents.java>
 import java.io.*; import java.io.*;
 import java.util.*; import java.util.*;
Line 159: Line 159:
   }   }
      
-  abstract class BasicComparator implements Comparator<Student> { +  static abstract class BasicComparator implements Comparator<Student> {
-   +
   }   }
          
-  Comparator<Student> lexicographicCmp = new BasicComparator() {+  static Comparator<Student> lexicographicCmp = new BasicComparator() {
     public int compare(Student st1, Student st2) {     public int compare(Student st1, Student st2) {
       int cmp = st1.lastName.compareTo(st2.lastName);       int cmp = st1.lastName.compareTo(st2.lastName);
Line 173: Line 172:
     }         }    
   };   };
- 
-  public static void readFromFile(List<Student> students, File f) {     
-    try(Scanner sc = new Scanner(f)) { 
-      while(sc.hasNextLine()) {         
-        students.add( new Student(sc.nextInt(), sc.next(), sc.next()) ); 
-      } 
-    } 
-    catch(FileNotFoundException ex) { 
-      System.out.println("File \""+f.getName()+"\" was not found!"); 
-    } 
-    catch(InputMismatchException ex) { 
-      System.out.println("Input mismatch while reading with scanner!!!"); 
-      ex.printStackTrace(); 
-      System.exit(-1); 
-    } 
-  } 
      
-  public void sortLexicographically(List<Student> students) {    +  public static void sortLexicographically(List<Student> students) {    
     Collections.sort(students, lexicographicCmp);     Collections.sort(students, lexicographicCmp);
   }   }
          
-  public void sortByAEM(List<Student> students) {+  public static void sortByAEM(List<Student> students) {
     Collections.sort(students, new BasicComparator() {     Collections.sort(students, new BasicComparator() {
         public int compare(Student st1, Student st2) {         public int compare(Student st1, Student st2) {
Line 206: Line 189:
       }       }
     );     );
-  } +  } 
-   +
-  public static String toString(List<Student> students) { +
-    StringBuffer str = new StringBuffer(); +
-    for(Student st : students)  +
-      str.append(st+"\n"); +
-    str.append("---------------------------------\n"); +
-    return str.toString(); +
-  } +
-   +
-  public static void main(String []args) { +
-    if(args.length == 0) { +
-      System.out.println("Insufficient number of arguments!\n"); +
-      return; +
-    } +
-    List<Student> students = new ArrayList<Student>(); +
-    readFromFile(students, new File(args[0])); +
-    System.out.println(" --- Init Ordering ---\n"); +
-    System.out.println(toString(students)); +
-    students.get(0).sortLexicographically(students); +
-    System.out.println(" --- Lexicographic Ordering ---\n"); +
-    System.out.println(toString(students)); +
-    students.get(0).sortByAEM(students); +
-    System.out.println(" --- AEM Ordering ---\n"); +
-    System.out.println(toString(students)); +
-  } +
-    +
 } }
 </code> </code>
java/anon_inner_classes.1618208462.txt.gz · Last modified: 2021/04/12 05:21 (external edit)