Iterable object

Status
Nicht offen für weitere Antworten.
J

javalover

Gast
Hi
ich habe eine Frage über Iterable. Hier ist ne Methode von Map die zu implementieren ist.
Code:
public Iterable<Entry<K, V>> entries() {
		// TODO Auto-generated method stub
		
		return null; 
	}

was kann hier z.B als Rückgabewert zurückgegeben werden. Wenn s möglich ein Beispiel bitte
Danke
 
G

Gelöschtes Mitglied 5909

Gast
API:

java.util
Interface Map.Entry<K,V>

=>
Code:
class MyMap<K,V> implements Map<K, V> {

   class MyEntry<K,V> implements Map.Entry<K,V> {
         
   }

  // iterator implementieren

  public Iterable<Entry<K,V>> entrys() {
    return new Iterable<MyEntry<K,V>>() {
           
             public Iterator<Entry<K,V>> iterator() {
                 return new MyEntryIterator<MyEntry<K, V>>();
             }
     };
  }

}
 
J

javalover

Gast
Hi danke für deine Antwort.
ich habe Entry so implmentiert. Da ich setValue() brauche.


public class SimpleEntry<K, V> implements Entry<K, V> {

private K key;
private V value;

public SimpleEntry(K k, V v) {
key = k;
value = v;
}

public K getKey() {
return key;
}

public V getValue() {
return value;
}

protected void setKey(K key) {
this.key = key;
}

protected void setValue(V value) {
this.value = value;
}

}


hier ist meine Mapclass :

/* @author XXX
* @created on 16.05.2008 22:27:16
*/
package uebungen.aufgabe26;
import java.util.*;

import uebungen.aufgabe26.SimpleEntry;;

public class MyMap<K, V> implements Map<K, V> {
// create a list type of SimpleEntry<Key,Value>
LinkedList<SimpleEntry<K,V>> myllist = new LinkedList<SimpleEntry<K, V>>();

@Override
public Iterable<Entry<K, V>> entries() {
// TODO Auto-generated method stub
return null;
}
@Override
//The method get delivers the value of the given key
// Runtime O(n)
public V get(K key) {
// TODO Auto-generated method stub
Iterator<SimpleEntry<K, V>> getIt = myllist.iterator();
while(getIt.hasNext()) {
SimpleEntry<K, V> currGetEntry = getIt.next();
if (currGetEntry.getKey()==key)
return currGetEntry.getValue();
}
return null;
}
@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
return (myllist.size()==0);
}

@Override
/* The method put delivers the value of the key which already exists otherwise a new key 'll be added
* with given key and value */
// Runtime O(n)
public V put(K key, V value) {
// TODO Auto-generated method stub
Iterator<SimpleEntry<K, V>> putIt = myllist.iterator();
V oldValue = null ;
SimpleEntry<K,V> toInsert = new SimpleEntry<K,V>(key, value); //create a new entry with key and value
while(putIt.hasNext()) {
SimpleEntry<K, V> currPutEntry = putIt.next();
if (currPutEntry.getKey()==key) {
oldValue = currPutEntry.getValue() ;
currPutEntry.setValue(value) ;
return oldValue; // return the old key
}
}
myllist.addLast(toInsert); // add a new entry if the key doesn't exist
return null;
}
@Override
public V remove(K key) {
// TODO Auto-generated method stub
return null;
}
@Override
public int size() {
// TODO Auto-generated method stub
return myllist.size();
}
}

wie kann ich hier die Methode entries() implementieren ?
 
G

Gelöschtes Mitglied 5909

Gast
so wies oben steht mit deinem Iterator

und benutz bitte code tags des is ein krampf des zu lesen

Code:
  public Iterable<Entry<K,V>> entrys() {
    return new Iterable<MyEntry<K,V>>() {
           
             public Iterator<Entry<K,V>> iterator() {
                 return myList.iterator();
             }
     };
  }

und programmier gegen die Interfaces:

statt
Code:
 LinkedList<SimpleEntry<K,V>> myList = new LinkedList<SimpleEntry<K, V>>();

folgendes:

Code:
 List<Entry<K,V>> myList = new LinkedList<SimpleEntry<K, V>>();

und wenn ich schon dabei bin:

mylist => myList

//edit

noch was

Code:
 if (currGetEntry.getKey()==key)

=> nicht so toll, mag bei gewrappten objekten noch funktionieren, ansonsten verwendet man aber equals

Code:
String foo = "a";
String bar = new String("a");

boolean result1 = (foo == bar);  // false, es sei denn der compiler optimiert es
boolean result2 = foo.equals(bar); // true

der == operator vergleicht die referenzen, nicht deren inhalt
 
J

javalover

Gast
danke für deine Antwort und Korrektur.
aber bei
Code:
List<Entry<K,V>> myList = new LinkedList<SimpleEntry<K, V>>();

meckert die Eclipse . Eclipse möchte gerne so haben :(.
Code:
LinkedList<SimpleEntry<K,V>> myList = new LinkedList<SimpleEntry<K, V>>();


mache ich was falsch ?
 

Wildcard

Top Contributor
...

Welchen Fehler bekommst du bei dieser Variante:

Code:
List<Entry<K,V>> myList = new LinkedList<SimpleEntry<K, V>>();
Und an welcher Stelle?
 
J

javalover

Gast
Also wie du siehst Eclipse meckert ja an der Stelle wo ich versuche mir ne List von LinkedList erstelle. Wenn ich trotzdem kompiliere
kommt folgende meldung :
"Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from LinkedList<SimpleEntry<K,V>> to List<Entry<K,V>> "
 

Wildcard

Top Contributor
Und SimpleEntry implementiert auch sicher Entry? LinkedList ist eine List, insofern muss der Rest passen.
 
J

javalover

Gast
ja sicher

Code:
public class SimpleEntry<K, V> implements Entry<K, V> {

private K key;
private V value;

public SimpleEntry(K k, V v) {
key = k;
value = v;
}

public K getKey() {
return key;
}

public V getValue() {
return value;
}

protected void setKey(K key) {
this.key = key;
}

protected void setValue(V value) {
this.value = value;
}

}
 

Marco13

Top Contributor
Entweder
List<? extends Entry<K,V>> myList = new LinkedList<SimpleEntry<K, V>>();
oder
List<SimpleEntry<K,V>> myList = new LinkedList<SimpleEntry<K, V>>();

Für dich ist wahrscheinlich letzteres angebrachter, wenn du eine List brauchst, die SimpleEntries enthält. Wenn es "nur" Entries sein müssen, wäre das erstere flexibler.
 

Marco13

Top Contributor
Schwach: Dass gerade DU nicht weißt, dass man da ein Wildcard verwenden muss :meld: :bae: :wink:
Aber mal im Ernst: Das ist aber auch teilweise alles nicht sooo trivial. Wer mal ein paar Tage (!) Zeit hat, kann sich dazu diese Seiten durchlesen:
http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html
die sind ... (subjektiv-zurückhaltend formuliert) "gut", und man merkt erst beim Durchlesen, WIE wenig man eigentlich über bestimmte Details der Generics bescheid weiß. Einige Punkte hab' ich mir mehrmals durchlesen müssen, bis auch nur der Hauch eines schwachen Lichts aufging. (OK, in 95% der Fälle gilt die Gleichung "Generics vewenden"=="Typ in spitzen Klammern dahinterschreiben", aber wenn's mal darüber hinausgeht, ist diese FAQ wirklich hilfreich - es ist schon eher ein (ausführliches) "Tutorial"...)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Kleine Frage zu Iterator und Iterable Java Basics - Anfänger-Themen 6
K Collections Iterable Java Basics - Anfänger-Themen 6
P ArrayList mit Iterator / Iterable ausgeben Java Basics - Anfänger-Themen 8
D Scala Iterable zu Java Collection konvertieren Java Basics - Anfänger-Themen 3
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
M Nullpointer beim befüllen meiner Liste im Object Java Basics - Anfänger-Themen 3
O Welcher Object-Lock-Pool bei static Variablen? Java Basics - Anfänger-Themen 3
J neues Object (JLabel) vorab zum Layout hinzufügen , Location setzen, etc? Java Basics - Anfänger-Themen 2
I JSON - cannot deserialize from Object value Java Basics - Anfänger-Themen 16
"java.util.HashMap.get(Object)" is null Java Basics - Anfänger-Themen 10
H What is the Life Cycle of an Object Created Within/Outside of a Servlet? Will that item be destroyed after the session ends? Java Basics - Anfänger-Themen 1
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
thobren Object[][] Java Basics - Anfänger-Themen 8
R Compiler-Fehler JTable mit XML befüllen | The constructor JTable(Object[], String[]) is undefined Java Basics - Anfänger-Themen 10
B JaxB - Property vom Typ Object und LocalDateTime speichern? Java Basics - Anfänger-Themen 0
S Arraylist<Object> mit verschiedenen Objects ausgeben Java Basics - Anfänger-Themen 3
N extends und super vs new object Java Basics - Anfänger-Themen 4
I JaxB und Klasse "Object" ? Java Basics - Anfänger-Themen 7
D Klassen undefined for the type 'object' Java Basics - Anfänger-Themen 2
B JaxB - speichern vom Typ "Object" Java Basics - Anfänger-Themen 8
P Variablen HttpResponse.getBody() wird automatisch org.json Object und kann nicht zu json.simple Object gecastet werden? Java Basics - Anfänger-Themen 7
M this.object in einer parameterlosen Methode verwenden Java Basics - Anfänger-Themen 3
M Java Klasse Object Java Basics - Anfänger-Themen 5
G Java Object value und entity? Java Basics - Anfänger-Themen 2
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
I Object-Oriented Programming, Objekt erzeugen Java Basics - Anfänger-Themen 1
P Zugreifen auf Object[] Java Basics - Anfänger-Themen 4
B if(object== null) abkürzen? Java Basics - Anfänger-Themen 6
A Object to Map Java Basics - Anfänger-Themen 2
D Object in ArrayList ausgeben Java Basics - Anfänger-Themen 24
L Input/Output Datei Object aus resources Java Basics - Anfänger-Themen 1
T HashSet in List-Object Java Basics - Anfänger-Themen 5
H Datentypen for(typ a : b) nur typ Object möglich ? Java Basics - Anfänger-Themen 2
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
T Object zu Char zu String Java Basics - Anfänger-Themen 6
Yamie ArrayList<Object> als Liste von Strings ausgeben? Java Basics - Anfänger-Themen 15
F Methoden Object.clone() Java Basics - Anfänger-Themen 1
A Probleme beim Methodenaufruf von Object[] ! Java Basics - Anfänger-Themen 12
J Methoden Doppelt verkettete Liste remove(Object) Java Basics - Anfänger-Themen 8
S Methoden equals(object o) / toString Java Basics - Anfänger-Themen 15
A JavaScript Object Notation einbinden mittels Maven Java Basics - Anfänger-Themen 7
F Unique Object Java Basics - Anfänger-Themen 3
GreyFox Object dynamisch mit werten versehen. Java Basics - Anfänger-Themen 4
R The method printf(String, Object[]) in the type printStrem in not applicable for the arguments ... Java Basics - Anfänger-Themen 3
Z Object Kreis am Frame abprallen lassen! Java Basics - Anfänger-Themen 12
O Object Java Basics - Anfänger-Themen 4
O nullpointerExce. Gui Object weitergabe Java Basics - Anfänger-Themen 12
P Variablen generic type variablen in object array Java Basics - Anfänger-Themen 1
K Selbst renderndes Object auf null setzen Java Basics - Anfänger-Themen 1
K Methoden Probleme mit LinkedList.remove(object) Java Basics - Anfänger-Themen 1
J Object bestimmter Klasse Java Basics - Anfänger-Themen 3
F Object mit zwei Entities Java Basics - Anfänger-Themen 3
B Map, basic types & Object Java Basics - Anfänger-Themen 5
P Auf Object in Array Methode anwanden Java Basics - Anfänger-Themen 2
S Object Array Length via Konstruktor Java Basics - Anfänger-Themen 5
B Date Object mit Millisekunden Ausgabe Java Basics - Anfänger-Themen 8
V Object in double? Java Basics - Anfänger-Themen 3
B Object in Array nach Prüfung löschen Java Basics - Anfänger-Themen 13
N Object mit String ansprechen Java Basics - Anfänger-Themen 7
A Applet mit Object-Tags einbinden. Java Basics - Anfänger-Themen 3
A If object != null funktioniert nicht Java Basics - Anfänger-Themen 2
B func(Object ....args) korrekt weitergeben Java Basics - Anfänger-Themen 4
M Object people[][] Daten hinzufügen Java Basics - Anfänger-Themen 3
T Input/Output Object Streams Java Basics - Anfänger-Themen 6
T Object[][] to String[][] Java Basics - Anfänger-Themen 8
T Object in Array Java Basics - Anfänger-Themen 3
T HashMap<String,Object> Werte auslesen Java Basics - Anfänger-Themen 5
H Object an methode Java Basics - Anfänger-Themen 4
D Object -> String Java Basics - Anfänger-Themen 6
W Compiler-Fehler "Could not reserve enough space for object heap"... und dann raucht das Programm ab Java Basics - Anfänger-Themen 3
D Datentyp Object Java Basics - Anfänger-Themen 2
B Object "Method" in TreeSet, Fehler beim Vergleichen/Comparable Java Basics - Anfänger-Themen 9
L Datentypen Object zu double zu int konvertieren Java Basics - Anfänger-Themen 6
M String to Object Java Basics - Anfänger-Themen 15
S Object Initialisierung Java Basics - Anfänger-Themen 7
H Object in einem .jar-File einlesen Java Basics - Anfänger-Themen 3
D Object oder Primitiv Java Basics - Anfänger-Themen 10
E Object in eigene Klasse umwandeln? Java Basics - Anfänger-Themen 7
W Main-method in Object-classes Java Basics - Anfänger-Themen 5
algebraiker TreeMap<Date,Object> navigieren? Java Basics - Anfänger-Themen 24
E Equals-Methode auf Class-Object Java Basics - Anfänger-Themen 17
C Typen aus List<Object[]> ändern Java Basics - Anfänger-Themen 7
C JComboBox setSelectedItem(Object) Problem Java Basics - Anfänger-Themen 5
B Methoden object = this; Java Basics - Anfänger-Themen 4
S Object Member<T> Klasse Java Basics - Anfänger-Themen 5
M Methode von einem Object überschreiben Java Basics - Anfänger-Themen 5
S Collections Aus Set<Object> bestimmte Typen entfernen Java Basics - Anfänger-Themen 3
M Variablen dynamisch variableninhalt von Object auslesen Java Basics - Anfänger-Themen 4
M Fehlermeldung: the method.... ist undefined for the type object Java Basics - Anfänger-Themen 6
R ArrayList(int index, Object) funktioniert nicht korrekt? Java Basics - Anfänger-Themen 7
C Bereits geöffnetes Object ermitteln Java Basics - Anfänger-Themen 5
N HashMap<String, Object> bei jre4 Java Basics - Anfänger-Themen 3
M object cast auf double Java Basics - Anfänger-Themen 2
K Datentypen Object in 2-dimensionales String Array zurückwandeln Java Basics - Anfänger-Themen 14
D Aus Object auslesen Java Basics - Anfänger-Themen 2
P Java Object das eine HTML Datei repräsentiert Java Basics - Anfänger-Themen 19
C mehrdimensionales Object sortieren Java Basics - Anfänger-Themen 4
T Aus object Array Double Werte ziehen Java Basics - Anfänger-Themen 10
T List.add(Object) führt zu NullPointerException Java Basics - Anfänger-Themen 14
F Wie kann ein Object[] zu Integer[] umwandeln? Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben