This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
java:array_list [2016/03/31 08:22] doufexi [Παράδειγμα 2] |
java:array_list [2018/03/15 14:49] (current) gthanos [Παράδειγμα 1] |
||
|---|---|---|---|
| Line 45: | Line 45: | ||
| ===== Παράδειγμα 1 ===== | ===== Παράδειγμα 1 ===== | ||
| - | Με βάση τα παραπάνω ας προσπαθήσουμε να ξαναγράψουμε το πρόγραμμα που δημιουργεί τον τηλεφωνικό κατάλογο, ώστε να αποθηκεύσουμε τα στοιχεία όχι σε ένα πίνακα 5 θέσεων, αλλά σε ένα αντικείμενο ArrayList. Στη συνέχεια θα προσπαθήσουμε να διατρέξουμε τα στοιχεία με χρήση ενός //Iterator//. | + | Με βάση τα παραπάνω παραθέτουμε ένα πρόγραμμα το οποίο διαβάζει από το πληκτρολόγιο μία σειρά από 10 αλφαριθμητικά και τα αποθηκεύει σε ένα [[http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html|ArrayList]]. Το πρόγραμμα παραθέτει τρεις (3) διαφορετικές μεθόδους για την διάτρεξη της λίστας //α)// με χρήση κλασσικού //for// //β)// με χρήση //[[java:loop_statements#for_statement|enhanced for]]// και //γ)// με χρήση //iterator//. Το πρόγραμμα κάνει τα εξής: |
| - | <code java ReadLineByLine.java> | + | - εκτυπώνει τη λίστα με χρήση της πρώτης μεθόδου διάτρεξης. |
| - | import java.io.*; | + | - ταξινομεί τη λίστα με χρήση της στατικής μεθόδου [[http://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#sort-java.util.List-|Collections.sort]]. |
| - | import java.util.ArrayList; | + | - εκτυπώνει τη λίστα με χρήση της δεύτερης μεθόδου διάτρεξης. |
| - | import java.util.Iterator; | + | - εκτυπώνει τη λίστα με χρήση της τρίτης μεθόδου διάτρεξης. |
| - | public class ReadLineByLine { | + | <code java ArrayListManipulation.java> |
| + | import java.util.*; | ||
| + | |||
| + | public class ArrayListManipulation { | ||
| public static void main(String []args) { | public static void main(String []args) { | ||
| - | try { | + | Random rand = new Random(new Date().getTime()); |
| - | String input; | + | ArrayList<String> list = new ArrayList<String>(); |
| - | int i=0; | + | System.out.println("Enter words (max 10):"); |
| - | ArrayList<TelephoneNumber> numbers = new ArrayList<TelephoneNumber>(); | + | Scanner sc = new Scanner(System.in); |
| - | BufferedReader in = new BufferedReader(new FileReader("telephone-list.txt")); | + | for(int i=0; i<10; i++) { |
| - | while( (input = in.readLine()) != null && input.length() > 0 ) { | + | list.add(sc.next()); |
| - | TelephoneNumber newNumber = createTelephoneNumber(input); | + | |
| - | numbers.add( newNumber ); | + | |
| - | } | + | |
| - | System.out.println("-------- Telephone Numbers ---------"); | + | |
| - | + | ||
| - | Iterator it = numbers.iterator(); | + | |
| - | while( it.hasNext() ) { | + | |
| - | System.out.println(it.next()); | + | |
| - | } | + | |
| - | + | ||
| - | } catch( IOException ex ) { | + | |
| - | ex.printStackTrace(); | + | |
| } | } | ||
| + | System.out.println("1. "+ArrayList2String1(list)); | ||
| + | Collections.sort(list); | ||
| + | System.out.println("2. "+ArrayList2String2(list)); | ||
| + | System.out.println("3. "+ArrayList2String3(list)); | ||
| + | } | ||
| + | | ||
| + | public static String ArrayList2String1(ArrayList<String> list) { | ||
| + | String str = ""; | ||
| + | for(int i=0; i<list.size(); i++) | ||
| + | str += list.get(i) + " "; | ||
| + | return str; | ||
| + | } | ||
| + | | ||
| + | public static String ArrayList2String2(ArrayList<String> list) { | ||
| + | String str = ""; | ||
| + | for(String e : list) | ||
| + | str += e + " "; | ||
| + | return str; | ||
| } | } | ||
| | | ||
| - | public static TelephoneNumber createTelephoneNumber(String inputLine) { | + | public static String ArrayList2String3(ArrayList<String> list) { |
| - | int commaPosition = inputLine.indexOf(","); | + | String str = ""; |
| - | String name = inputLine.substring(0, commaPosition).trim(); | + | Iterator it = list.iterator(); |
| - | String telephone = inputLine.substring( commaPosition+1 ).trim(); | + | while(it.hasNext()) |
| - | TelephoneNumber t = new TelephoneNumber(name, telephone); | + | str += it.next()+" "; |
| - | return t; | + | return str; |
| } | } | ||
| } | } | ||
| Line 173: | Line 182: | ||
| </code> | </code> | ||
| - | |Προηγούμενο: [[ :java:write_to_file | Γράφοντας σε αρχείο ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:interfaces | Interfaces]] | | + | |Προηγούμενο: [[ :java:packages:using | Χρήση κλάσεων από άλλες κλάσεις ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:inheritance | Κληρονομικότητα ]] | |