Merhaba,

Yapmak istediğim kelime çiftlerinden oluşan bir listede her iki kelime içinde arama yapabilmek, daha açıklayıcı olması için şöyle bir örnek vereyim.

Örneğin şehir adı ve plaka numarasından oluşan bir listem olsun. Benim istediğim plaka numarasına göre adı veya ada göre plaka numarasını alabileceğim bir yapı kurmak bunun için nasıl bir veri yapısı tavsiye edersiniz. Başta eşleme tabloları (hashTable) düşündüm ancak bir anahtar-değer yapısı üzerine kurulu olduğu için gerekli değere anahtarla ulaşılıyor. Bana bunun tersinide yapabilecek bir yapı gerekli

liste = "06" : "Ankara",
        "34" : "İstanbul",
        "55" : "Samsun"

Amacım yukarıdaki listede örnegin liste["06"] diyerek Ankara veya liste["Ankara"] diyerek 06 bilgisine ulaşabilmek, fikirlerinizi paylaşırsanız memnun olurum.

soruldu: 16 Kas '13, 09:34

zafer's gravatar image

zafer
41591019
cevap kabul oranı: 11%

değiştirildi: 18 Kas '13, 04:12

CemIkta's gravatar image

CemIkta ♦
19.9k29125190

programlama dili ekleyiniz.

(16 Kas '13, 10:15) Turgay Can Turgay%20Can's gravatar image

dilden bağımsız düşünmek istediğim için dil belirtmedim. Mevcut yapılar dışında daha geniş bir alanda düşümek taraftarıyım.

(17 Kas '13, 23:50) zafer zafer's gravatar image

HashMap ile bunu şöyle yapabilirsin.

2 HashMap oluşturursun.

Map<string,string> plakaMap = new HashMap<string,string>(); //bu map içine key olarak plaka ata get ile şehiri bul

Map<string,string> sehirMap = new HashMap<string,string>(); //bu map içine key olarak şehir ata get ile şehiri bul

yada iki modelli List oluştur. Bir model oluşturun.

class MyModel{
private String plaka;
private String sehir;
//getter,setter
}

List<MyModel> list = new ArrayList<MyModel>();

String aranilanDeger; // kullanıcıdan gelen input
for(MyModel model : list){
// if ile kontrol et, bulunca break ile kes yada return et
}

gibi.

permanent link

cevaplandı: 16 Kas '13, 09:58

Turgay%20Can's gravatar image

Turgay Can
8.3k63798
cevap kabul oranı: 18%

değiştirildi: 16 Kas '13, 09:59

Merhaba, Bu çözümleri bende düşünmüştüm ancak yukarıdaki açıklamada da belirttiğim gibi daha temiz ve daha efektif bir çözüm arıyorum.

Eşleme tablosu yaklaşımı benim yapmak istediğim işlem için oldukça elverişli tek sıkıntı tek taraflı bir eşleme yapması (anahtar-değer) belki buradan yola çıkıp kendi yapımı oluşturarak kullanma fikri bende daha ağır basıyor. Böyle bir veri yapısı tasarımı için neler dersiniz?

(17 Kas '13, 23:47) zafer zafer's gravatar image

Google'nın guava kütüphanesi var. Orada <k,v,k,v> şeklinde parametreler alabilen veri yapıları mevcut.

Alt yapısı oluşturarak bir arayüz ile yine primitf yaklaşımlarla aynı tür şeyi senin bu case2indeki gibi kullanabilirsin. Fakat bu tür arama yapılarında yaklaşımlar verinin büyükülüğüne göre değiştiğinden matematiksel yaklaşımlarda ona göre değişir. En basitinden geleneksel 2 boyutlu yaklaşımla, logaritmik yaklaşım gibi..

(18 Kas '13, 00:05) Turgay Can Turgay%20Can's gravatar image

Teşekkürler dostum, senden başka ilgilenen yok zaten, kafamda tam olarak bir çözüm oluşmadı. Belki senin verdiğin örnekleride inceleyip kendi veri yapımı oluşturmayı deneyebilirim. Yada eşleme tabloları ile bir çözüm üretemeyi deneyebilirim. Tekrardan teşekkürler.

(18 Kas '13, 01:21) zafer zafer's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1

Soruldu: 16 Kas '13, 09:34

Görüntüleme: 607 kez

Son güncelleme: 18 Kas '13, 04:12

Benzer sorular

powered by BitNami OSQA