-
Fototrend
Új hozzászólás Aktív témák
-
ar
tag
válasz VladimirR #640 üzenetére
Hello!
java.util.Map
Ugye ez egy interface, szoval az init-re tett kerdesedre adando valasz az, hogy olyan osztaly peldanyat kell letrehozni, ami implementalja ezt az interfacet. A java.util.HashMap az a megvalositas amit altalanosan hasznalunk. Tehat: Map m = new HashMap(); import-okat nem irok ki ha nem baj . Ha mar php-nel tartunk (aminek a doksija sajnos egy nagy tragyahalom a javadoc-hoz kepest, mar megbocsass , akkor a Map-et ugy fogd fel, mint egy associacios tomb. Ha bele akarsz valamit rakni, akkor Map.put(Object key, Object value), ha ki akarsz belole szedni valamit akkor Map.get(Object key) : Object ahol a visszateresi ertek null, ha az adott kulcsoz, nincs bejegyzes. A tenyleges bejegyzesekhez a Map.Entry interface hasznalataval tudsz hozzaferni az adott Map.entrySet() : Set meghivasaval. Az Map.Entry.getValue() : Object, setValue(Object) metodusokkal tudok az aktualis bejegyzest modositani. Talan emlitest erdemel meg a Map.containsKey(Object key): boolean, metodusa, de tobb olyan metodus van ami a java.util.Collection-ben is megtalalhato. De figyelj oda, hogy a Map != Collection! Ja, a Map kulcs nelkuli ertekhalmazat (Collection view) a Map.values() : Set (?) metodussal tudod elkerni.
A java.util.Map-nek van egy leszarmazott (kiterjeszett) interface-e, a java.util.SortedMap, amiben a KULCSOK szerint rendezve vannak a Map.Entry-elemek. A HashMap csak java.util.Map megvalositas, tehat ott nem garantalt a kulcs sorrend, de a SortedMap megvalositasa a java.util.TreeMap mar ugye ertelem szeruen garantalja a kulcs sorrendet (natural order illetve Comparator, ha jol tevedek). Hasznos a subMap(Object fromKey, Object toKey) : SortedMap vagy hasonlo metodusa (ha van egyaltalan neki, a SortedSet tudja ezt , amivel a kulcsok sorrendje alapjan, reszhalmazat kerheted le a kulcs-ertek parjainak.
Tehat:
Map m = new HashMap();
m.put(new Integer(0), ''A'');
m.put(new Integer(1), ''B'');
m.containsKey(new Integer(0)) // true
m.containsKey(''A''); // false
for (Iterator i = m.keySet().iterator(); i.hasNext; ) {
Object key = i.next();
System.out.println(m.get(key));
}
vagy
for (Iterator i = m.entrySet().iterator(); i.hasNext(); ) {
Map.Entry entry = (Map.Entry) i.next();
System.out.println(entry.getKey() + '' -> '' + entry.getValue());
}
Eleg ertheto voltam? -
ar
tag
Google kereses eredmenye
Bővebben: link -
ar
tag
válasz VladimirR #651 üzenetére
Elso korben annyit latok, hogy te kiirod az EOF (-1) erteket is, amit nem hiszem, hogy akarsz. Masodsorban nem lenne artalmas a Writer.flush() metodusat hivogatni, vagy egyszeruen lezarni a kimeneti folyamot, ha elkeszultel. Harmadsorban nem artana kivetelt is kezelni .
Valahogy igy csinalnam, a kimenetet helyettesitsd be:
<code>
Reader fin = null;
try {
fin = new FileReader(''filename.txt'');
int c = 0;
while ((c = fin.read()) != -1) {
System.out.println((char) c);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fin != null)
fin.close();
} catch (IOException e) {
e.printStackTracer();
}
}
</code>
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- APPLE MacBook Air 2020 13" Retina - M1 / 8GB / 256 GB SSD / MAGYAR / 96% akku, 81 ciklus / Garancia
- LG NanoCell 55NANO766QA Halvány píxel csík
- Philips 58PUS8545/12 1 ÉV GARANCIA Játék üzemmód
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!