tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
720
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    AvS AvS ist offline
    Registriert seit
    Mar 2002
    Ort
    borken|nrw
    Beiträge
    367
    Hi,

    ich schreibe gerade eine eigene Queue-Collection und bin mir nicht sicher, ob dass was ich dort gemacht habe so korrekt ist. Es geht um die Methoden zum anfügen und entfernen der Objekte aus der Warteschlange :

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
    public boolean enqueue(Object o)
        {
            if(o!=null)
            {
                Entry e = new Entry();
                e.data = o;
                e.next = this.tail;
                this.tail = e;
                this.size++;
                return true;
            }
            else
                return false;
        }
        
        public Object dequeue()
        {
            if (this.size > 0)
            {
                Object o = this.head.data;
                this.head = this.head.next;
                this.size--;
                return o;
            }
            return null;
        }
     
    cash rules everything around me

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.885
    Blog-Einträge
    29
    Hallo,

    schau mal hier:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    
    /**
     * 
     */
    package de.tutorials;
     
    /**
     * @author Thomas.Darimont
     * 
     */
    public class QueueExample {
     
        /**
         * @param args
         */
        public static void main(String[] args) {
            Queue q = new Queue();
            q.enqueue("A");
            q.enqueue("B");
            q.enqueue("C");
            q.dequeue();
            q.enqueue("D");
            q.dequeue();
            q.enqueue("E");
            q.dequeue();
            q.enqueue("F");
            q.enqueue("G");
            q.enqueue("H");
            q.enqueue("I");
            
            
            while(!q.isEmpty()){
                System.out.println(q.dequeue());
            }
            
        }
        
        /**
         * 
         * @author Thomas.Darimont
         * <b>NOT</b> Threadsafe
         */
        static class Queue{
            private Entry head;
            private Entry tail;
            
            private int size;
     
            public Queue() {
            }
            
            public void enqueue(Object value){
                if(value == null) throw new IllegalArgumentException("value: null values are not allowed here");
                if(tail == null){
                    this.head = this.tail = new Entry(value);
                }else{
                    Entry entry = new Entry(value);
                    tail.next = entry;
                    tail = entry;
                }
                size++;
            }
            
            public Object dequeue(){
                if(head != null){
                    Entry entry = head;
                    head = entry.next;
                    entry.next = null;
                    size--;
                    return entry.value;
                }
                return null;
            }
            
            public boolean isEmpty(){
                return head == null;
            }
            
            public int size(){
                return size;
            }
        }
        
        static class Entry{
            Entry next;
            Object value;
     
            public Entry(Object value) {
                this.value = value;
            }
        }
     
    }

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  3. #3
    AvS AvS ist offline
    Registriert seit
    Mar 2002
    Ort
    borken|nrw
    Beiträge
    367
    Hallo,

    damit hast du mir sehr weitergeholfen ! Gibt es noch mehr von den de.tutorials-Packages ?
     
    cash rules everything around me

  4. #4
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Zitat Zitat von AvS Beitrag anzeigen
    Gibt es noch mehr von den de.tutorials-Packages ?
    *g* Wenn wir Beispiele machen erstellen wir die Klassen eigentlich in einem de.tutorials Package also mit der Forum-Suche könntest du da noch einiges von finden. Es ist aber keine API in dem Sinne.

    Und Java bringt schließlich auch eine eigene Queue Klasse mit, deren Sourcecode du auch angucken kannst.
     

  5. #5
    AvS AvS ist offline
    Registriert seit
    Mar 2002
    Ort
    borken|nrw
    Beiträge
    367
    In der API von Java habe ich zwar die Queue-Collection gefunden, aber keine gescheite Beschreibung der Methoden, die mir da weiterhelfen konnten. Nur halt, welche Parameter die brauchen und was der Return-Wert sein muss.
     
    cash rules everything around me

  6. #6
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Also die Beschreibungen in der API sind wirklich okay. Damit arbeitet die ganze Welt....

    So gehts auf jeden Fall:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    public static void main(String[] args) {
        Queue<String> q = new LinkedList<String>();
        q.offer("A");
        q.offer("B");
        q.offer("C");
        q.poll();
        q.offer("D");
        q.poll();
        q.offer("E");
        q.poll();
        q.offer("F");
        q.offer("G");
        q.offer("H");
        q.offer("I");
     
        while (!q.isEmpty()) {
            System.out.println(q.poll());
        }
    }
     

Ähnliche Themen

  1. Konzept: eigene Scrolleiste programmieren
    Von gugug im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 16.11.05, 07:58
  2. eigene Suchmaschine programmieren
    Von Plan -B im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 26.09.04, 14:16
  3. Antworten: 10
    Letzter Beitrag: 13.07.04, 11:01
  4. Queue O_o
    Von genesys im Forum Fun-Forum
    Antworten: 15
    Letzter Beitrag: 02.05.04, 02:01
  5. Eine eigene Hompage ohne Programmieren?
    Von Cheris im Forum Internet, DSL & Flatrate
    Antworten: 21
    Letzter Beitrag: 11.04.04, 01:03