Kılgılayan Sınıflar: AbstractMap, Attributes, HashMap, Hashtable, IdentityHashMap, RenderingHints, TreeMap, WeakHashMap

Benzer belgeler
Class HashMap. Class HashMap java.lang.object java.util.abstractmap java.util.hashmap. Kılgıladığı Arayüzler: Cloneable, Map, Serializable

Class LinkedHashMap. Class LinkedHashMap java.lang.object java.util.abstractmap java.util.hashmap java.util.linkedhashmap. Kılgıladığı arayüzler:

HashMap O rnekleri. Örnek: /* U : Uranyum Au : Altın Ag : Gümüş Li : Lityum H : Hidrojen Altın Yeni değer : Radyum */

İlgili Konular: Object.equals(java.lang.Object), Object.hashCode(), rehash(), Collection, Map, HashMap, TreeMap, Serialized Form

Kılgıladığı arayüzler: Serializable, Cloneable, Map<K,V>, NavigableMap<K,V>, SortedMap<K,V>

İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu

I Java Veri Yapıları 1

Class HashSet. Metotlar. Class HashSet java.lang.object java.util.abstractcollection java.util.abstractset java.util.hashset

Đlgili konular: Collection, Set, HashSet, Comparable, Comparator, TreeMap, Collections.synchronizedSortedSet(SortedSet), Serialized Form

Class LinkedHashSet. Class LinkedHashSet java.lang.object java.util.abstractcollection java.util.abstractset java.util.hashset java.util.

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator

Görsel Programlama DERS 04. Görsel Programlama - Ders04/ 1

Class PriorityQueue. Class PriorityQueue<E> java.lang.object java.util.abstractcollection<e> java.util.abstractqueue<e> java.util.

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

Java Koleksiyonları (Java Collections)

Bir c sınıfının doğal sıralaması ile tutarlı olması (be consistent with equals) demek, c sınıfı içindeki her e1 ve e2 nesnesi için

HASH(KARMA) TABLOSU VERİ YAPISI

ArrayList Uygulamaları

Nesneler için torbalar (Collections) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Class LinkedList java.lang.object java.util.abstractcollection java.util.abstractlist java.util.abstractsequentiallist java.util.

ArrayList(int initialcapacity) Sığası (capacity) parametrenin belirlediği sayıda olan bir dizi oluşturur.

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Binary Search. (Yarılama) Bölüm Dizide Bir Öğe Arama

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

Java Programlama Dilinde Veri Tipleri. Yrd. Doç. Dr. Aybars UĞUR

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Insertion Sort. (Sokuşturma Sıralaması)

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

D İ Z İ L E R A R R A Y S

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

JAVADA DİZİ İŞLEMLERİ

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

public class SalesLineItem // Java { private int quantity; private ProductSpecification description; public Money getsubtotal() {...

// hataları işaret eden referans

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

Java, java.util paketi içinde mevcut olan Date sınıfını sağlar, bu sınıf güncel tarih ve zamanı kapsüllemektedir.

BİL-141 Bilgisayar Programlama I (Java)

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

EMT2226 Nesne Yönelimli Programlamaya Giriş

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Java. Mustafa OF. Kocaeli Üniversitesi Kocaeli Meslek Yüksekokulu (Mart 2007)

BASİT VERİ TÜRLERİ, STRİNGLER, VE KONSOL GİRİŞ/ÇIKIŞ

SIRALAMA SORTING. Yrd. Doç. Dr. Aybars UĞUR

BAĞLAÇLI LİSTELER LINKED LISTS

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

CharArrayReader. Kılgıladığı Arayüzler: Bildirimi: Değişkenleri (fields): java.io.reader Sınıfından Kalıtsal Gelen Değişken:

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Arasınav Örnek Soruları Bahar 2018

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

İÇİNDEKİLER VII İÇİNDEKİLER

Mantıksal İşlemler. 7.1 true, false, nil

Java: printf() Metodu İle Çıktıyı Biçemleme

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

YZM 2116 Veri Yapıları

Ders - 7 while döngüsü

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Temel Veri Türü İşlemleri

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir.

YZM 2116 Veri Yapıları

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

(Sözlük, dictionary, birleşik array, map)

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 6. UYGULAMA

BAĞLAÇLI LİSTELER LINKED LISTS

BİL-141 Bilgisayar Programlama I (Java)

Döngüler. Tablo 15.1: Ruby de Başlıca Döngü Yapıları

Karşılaştırma İşlemleri ve Koşullu İfadeler

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

YMT219 VERİ YAPILARI ÖDEV-1

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

KUYRUKLAR. Doç. Dr. Aybars UĞUR

Operator Aşırı Yükleme (Operator OverLoading)

ATATÜRK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BIM 205 GÖRSEL PROGRAMLAMA GÜZ DÖNEMİ ÖDEV-1

Merge (Bireşim) Algoritmayı önce bir örnek üzerinde açıklayalım.

Class Vector. Class Vector java.lang.object java.util.abstractcollection java.util.abstractlist java.util.vector. Kılgıladığı arayüzler:

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R

Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir:

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

Merge Sort Bireşen Sıralama

Nesne Yönelimli Programlama

C# VE JAVA NESNE YÖNELİMLİ PROGRAMLAMA DİLLERİNDE COLLECTION FRAMEWORK'LERİN KARŞILAŞTIRMALI PERFORMANS ANALİZLERİ.

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Transkript:

Map Arayu zu java.util Interface Map Altarayüzleri: SortedMap Kılgılayan Sınıflar: AbstractMap, Attributes, HashMap, Hashtable, IdentityHashMap, RenderingHints, TreeMap, WeakHashMap Map, Java Collections Framework un bir üyesidir. Map (gönderim) anahtarları değerlere eşleştiren bir nesnedir. Örneğin, bir ad listesinde her ada bir sıra numarası vermek bir Map (gönderim) işlemidir. Bu işlemde sıra numaralarının her biri bir anahtar, her ad bir değer olur. Liste karışmasın diye her ada ayrı bir sıra numarası verilir. Sıra numaraları anahtarlar, adlar ise değerlerdir. Sıra numaraları birbirlerinden farklıdır; ancak adlar farklı olmayabilir. Örneğin, aşağıdaki ad listesinde Selda adlı iki kişi var. Onların her birine ayrı sıra numarası verildi. Sıra numaraları (anahtarlar) içinde dublikasyon yoktur. Ama adlar (değerler) içinde dublikasyon olabilir. 1 Selda 2 Can 3 Selda 4 Murat Benzer olarak, Map, her değere farklı bir anahtar eşler; anahtarlarda duplikasyon olamaz. Değerlerde duplikasyon olabilir. Anahtar sayısı değer sayısından az olamaz; daha çok olabilir. Yaptığı işe göre, Map bir fonksiyondur. Java, üç ayrı Map kılgılar: HashMap, TreeMap, LinkedHashMap Bunların davranışları ve performansları, sırasıyla, HashSet, TreeSet ve LinkedHashSet gibidir. Ayrıntı için Set Arayüzü ne bakınız. Map arayüzü koleksiyonu üç türlü görmemizi sağlar: anahtarlar kümesi, değerler kümesi ve anahtar-değer eşleşmeleri kümesi. Map içindeki sıralama, koleksiyon üzerinde tanımlanan iteratörün öğeleri bize veriş sırasıdır. Ancak, TreeMap yapısında öğelerin sırası belirlidir. HashMap yapısında ise sıra belirli değildir. 1

Map arayüzünün metotları void clear() Map içindeki bütün gönderimleri siler. boolean containskey(object key) Map içinde belirtilen anahtar varsa true yoksa false değeri verir. boolean containsvalue(object value) Map içinde belirtilen değer varsa true yoksa false değeri verir. Set entryset() Map içindeki öğeleri bir küme olarak verir. boolean equals(object o) Belirtilen öğenin Map içinde bir öğeye eşit olup olmadığını bulur. Object get(object key) Belirtilen anahtarın eşleştiği değeri verir. int hashcode() Map için hash kodu verir. boolean isempty() anahtar-değer eşleşmesi yoksa true verir. Set keyset() anahtarları bir küme olarak verir. Object put(object key, Object value) verilen anahtarı verilen nesneye eşler. void putall(map t) Map i istenilen Map e kopyalar. Object remove(object key) verilen anahtarla eşleşen nesne varsa onu Map ten siler. int size() anahtar-değer eşleşmelerinin sayısını verir. Collection values() map içindeki değerleri bir koleksiyon olarak verir. Aşağıdaki program Map sınıfının kullanılışına bir örnektir. Veriyi depolamak için HashMap kullanılmıştır. 2

public class HashSetDemo { Map map = new HashMap(); map.put("bilim", "12"); map.put("sanat", "3"); map.put("edebiyat", "5"); map.put("siyaset", "9"); System.out.println(); System.out.println(" Map Öğeleri:"); System.out.print("\t" + map); Çıktı: Map Öğeleri: {Sanat=3, Siyaset=9, Bilim=12, Edebiyat=5 Aşağıdaki program Map sınıfının kullanılışına bir örnektir. Program önce bir HashMap yapısı kuruyor sonra o yapıyı bir TreeMap yapısına dönüştürüyor. Programın sonunda her iki yapıdaki öğeler yazdırılıyor. HashMap yapısına (depo) girilen öğelerin farklı veri tiplerinden nesneler olduğuna dikkat ediniz. import java.util.hashmap; public class MapDemo { public HashMap hashmap; // veriyi sıralamak için TreeMap yapısı private TreeMap treemap; public void startdemo() { hashmap = new HashMap(); hashmap.put("key1", new Double(3434.34)); hashmap.put("key2", new Integer(123)); hashmap.put("key3", new String(" Ankara")); hashmap.put("key4", new Boolean(true)); // Sort the hash map using a tree map treemap = new TreeMap(hashMap); MapDemo md = new MapDemo(); md.startdemo(); System.out.print(" HashMap : "); System.out.println(md.hashMap); System.out.print(" TreeMap : "); System.out.println(md.treeMap); 3

Sırasız HashMap : {Key2=123, Key1=3434.34, Key4=true, Key3= Ankara Sıralı TreeMap : {Key1=3434.34, Key2=123, Key3= Ankara, Key4=true Örnek Aşağıdaki program, öğrencileri numaralarına eşleyen bir HashMap yapısıdır. public class HashMapDemo { HashMap hm = new HashMap(); hm.put("alatli MERVE", new Integer(20895548)); hm.put("aygün DAMLA ", new Integer(20094828)); hm.put("büyükkiliç AYKUT", new Integer(20893085)); hm.put("can FEHĐME ", new Integer(20793172)); hm.put("caner HALĐL ", new Integer(20393385)); hm.put("çelđk FATĐH ", new Integer(20893682)); Set set = hm.entryset(); Iterator i = set.iterator(); while (i.hasnext()) { Map.Entry me = (Map.Entry) i.next(); System.out.println(me.getKey() + " : " + me.getvalue()); // AYGÜN DAMLA'nın numarasını düzelt hm.put("aygün DAMLA", new Integer(20894828)); System.out.println("AYGÜN DAMLA 'nın numarası : " + hm.get("aygün DAMLA")); Çıktı: BÜYÜKKILIÇ AYKUT : 20893085 CANER HALĐL : 20393385 ALATLI MERVE : 20895548 ÇELĐK FATĐH : 20893682 CAN FEHĐME : 20793172 AYGÜN DAMLA : 20094828 AYGÜN DAMLA 'nın numarası : 20894828 Aşağıdaki program bazı Map fonksiyonlarının kullanılışını göstermektedir. 4

public class MapDemo { Map map = new HashMap(); map.put("karaçay", "ist264"); map.put("umut", "ist378"); map.put("özlem", "ist254"); map.put("erdem", "ist360"); System.out.println("Map :" + map); System.out.println("hashCode() :" + map.hashcode()); System.out.println("entrySet() :" + map.entryset()); System.out.println("values() :" + map.values()); System.out.println("keySet() :" + map.keyset()); Map :{Erdem=ist360, Karaçay=ist264, Özlem=ist254, Umut=ist378 hashcode() :-1075459124 entryset() :[Erdem=ist360, Karaçay=ist264, Özlem=ist254, Umut=ist378] values() :[ist360, ist264, ist254, ist378] keyset() :[Erdem, Karaçay, Özlem, Umut] Örnek : Aşağıdaki program alfabenin büyük harflerine ASCII kodlarını eşliyor. import java.util.hashmap; import java.util.iterator; import java.util.map; import java.util.set; public class HashMapDemo { Map<Integer, Character> m = new HashMap<Integer, Character>(); for (int i = 65; i <= 90; i++) { m.put(i, (char) i); Set<Integer> ks = m.keyset(); Iterator<Integer> i = ks.iterator(); while (i.hasnext()) { Integer key = i.next(); System.out.print(key + " "); System.out.println(m.get(key)); 5

Çıktı: 68 D 69 E 70 F 71 G 65 A 66 B 67 C Bu örnekte bir HashMap nesnesi kılgılanıyor. Map<Integer, Character> ifadesi Map için anahtarları Integer ve değerleri Character olarak tanımlıyor. Put() metodu ile HashMap koleksiyonuna ascii kodları eşlenmiş harfleri ekliyoruz. Get() metodu ile koleksiyonu yazdırıyoruz. Bu koleksiyonda sıralamanın rasgele olduğuna dikkat ediniz. Çünkü Map e eklenen anahtar-değer ikilileri ekleniş sırasını korumayabilir. Aşağıdaki program Map i başka bir Map e sonra da bir TreeMap yapısına dönüştürüyor. TreeMap yapısında değerlerin sıralı olduğuna dikkat ediniz. public class MapDemo { Map<String, String> map1, map2; MapDemo md = new MapDemo(); md.map1 = new HashMap<String, String>(); md.map1.put("alatli", "20895548"); md.map1.put("damla", "20894828"); md.map1.put("aykut", "20893085"); md.map1.put("can", "20793172"); System.out.println(); System.out.println("Map Öğeleri:"); System.out.println("\t" + md.map1); System.out.println("putAll() metodu ile ile aktarma :"); md.map2 = new HashMap<String, String>(); md.map2.putall(md.map1); System.out.println("\t" + md.map2); System.out.println("TreeMap yapısına dönüştürme :"); TreeMap treemap = new TreeMap(md.map2); System.out.println("\t" + treemap); Map Öğeleri: {DAMLA=20894828, AYKUT=20893085, ALATLI=20895548, CAN=20793172 putall() metodu ile ile aktarma : {DAMLA=20894828, AYKUT=20893085, ALATLI=20895548, CAN=20793172 TreeMap yapısına dönüştürme : {ALATLI=20895548, AYKUT=20893085, CAN=20793172, DAMLA=20894828 6