Προγραμματισμός ΙΙ: Συμβολοσειρές και Συλλογές

Προγραμματισμός ΙΙ

Συμβολοσειρές και Συλλογές

Συμβολοσειρές

Παράδειγμα

char[] helloArray = {'h', 'e', 'l', 'l', 'o', '!'};
String helloStr = new String(helloArray);
System.out.println(helloStr);

Χειρισμός Συμβολοσειρών

Σύκριση Συμβολοσειρών

Μέθοδος substring

// Return sustring "world"
// H e l l o   w o r l d
// 0 1 2 3 4 5 6 7 8 9 10

String h = new String("Hello world");
h.substring(6,11);

Μέθοδος split(1)

// Split using the underscore
String word = new String("Hello_Programming_II");
String[] splitThisString = word.split("_");

// Split using the whitespace
String word2 = new String(Hello Programming               II);
String[] splitThisOneToo = word2.split("\\s+");
// "\\s+" μπορεί να χρησιμοποιηθεί για κενά όπως \n, \t, κτλ.

Μέθοδος split(2)

String word2 = new String(“Hello Programming       II”);
String[] splitThisNow = word2.split(“\\s+”, 1);
System.out.println(splitThisNow.length);

Μεταβλητές Συμβολοσειρές

StringBuffer str1 = new StringBuffer("Programming");
String str = " II"; 
str1.append(String str);
StringBuffer sb = new StringBuffer("abcdefghijk");
sb.insert(3,"1234");
StringBuffer delete(int start, int end)
StringBuffer sb = new StringBuffer("abcdefghijk");
sb.replace(3, 8, "DONE");

Συλλογές

Κατηγορίες Συλλογών

Υλοποιήσεις Συλλογών

Διαπαφές και Υλοποιήσεις

ArrayList -- Λίστα Πίνακα

// class declaration according to Oracle
public class ArrayList<E> extends AbstractList<E> implements List<E>, .... {
    // ...
}

Παράδειγμα ArrayList

import java.util.ArrayList;

public class ArrayListDemo {

    public static void main(String[] args) {
        // Δήλωση ArrayList 
        ArrayList<Integer> myList = new ArrayList<>();
        
        // πρόσθεσε στοιχεία στο τέλος της λίστας
        myList.add(1);
        myList.add(2);
        myList.add(4);
        System.out.println(myList);
        
        // πρόσθεσε στοιχείο στην συγκεκριμένη θέση
        myList.add(2, 3);
        System.out.println(myList);
        
        // έλεγχος αν υπάρχει το συγκεκριμένο στοιχείο
        System.out.println("List contains 2? " + myList.contains(2) + "\n"
                            + "List contains 0? " + myList.contains(0));
        
        // διαγραφή όλων των στοιχείων από την ArrayList
        myList.clear();
        System.out.println(myList);
    }

}

with output

    [1, 2, 4]
    [1, 2, 3, 4]
    List contains 2? true
    List contains 0? false
    []

LinkedList -- Συνδεδεμένη Λίστα

// class declaration according to Oracle
public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Queue<E>, .... {
    // ...
}

Παράδειγμα LinkedList (1)

Παράδειγμα LinkedList (2)

CircleList, a linked list example

class Circle {
    private Circle next;

    Circle(){ this.next = null; }
    public void setNext (Circle c) { this.next = c; }
    public Circle getNext () { return this.next; }
}

public class CircleList {
    private Circle first_element;
    
    CircleList() { this.first_element = null; }
    
    public void addElement(Circle c) {
        if(this.first_element == null) {
            this.first_element = c; 
        } else {
            Circle current_circle = this.first_element;
            while (current_circle.getNext() != null) {
                current_circle = current_circle.getNext();
            }
            current_circle.setNext(c);
        }
    }

}

Σύγκριση ArrayList και LinkedList

Stack -- Στοίβα

// The Stack class, as defined by Oracle
public class Stack<E> extends Vector<E> implements List<E>, ... { 
    // ... 
}

Παράδειγμα Stack (1)

Παράδειγμα Stack (2)

import java.util.Stack;

public class StackDemo {

    public static void main(String[] args) {
        // Αρχικοποιήση στοίβας
        Stack<Integer> stack = new Stack<>();
        
        // προσθέτουμε στοιχεία στην οροφή της στοίβας
        stack.push(1);
        stack.push(2);
        stack.push(3);
        stack.push(4);
        System.out.println(stack);
        
        // δες την τελευταία προσθήκη
        int top = stack.peek();
        System.out.println("top element: " + top);
        
        // αφαίρεση του τελευταίου στοιχείου και αποθήκευση
        int first = stack.pop();
        System.out.println("popped element: " + first + "\n" + stack);
        
        // δες το τελευταίο στοιχείο
        top = stack.peek();
        System.out.println("top element: " + top);
    }

}

Creative Commons Licence
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.