2016-04-05 19 views
0

Bir hashMap'i bir dizenin değerleriyle bölme hakkında nasıl giderim? Örneğin aşağıdaki hashMap tablosunu anahtar: attribute1 value: "a" ile ayırmak. oBuhtteki değerlere göre bir hashMap bölme

public Map<String, List> table = new HashMap<String, List>(); 

     String[] attribute1 = {"a", "a", "b", "c", "c"}; 
     String[] attribute2 = {"car", "car", "car", "train", "bus"}; 
     String[] attribute3 = {"yes", "no", "no", "no", "yes"}; 

verecekti ki: Ben gelen değer endeksi olan bir anahtarın tüm değerlerini kaldırarak bunu yapabilirsiniz herhangi bir yolu

 String[] attribute1 = {"a", "a"}; 
     String[] attribute2 = {"car", "car"}; 
     String[] attribute3 = {"yes", "no", }; 

var mı? Öğrendiklerimden, değerlerin bir indeksi olmayan haritalar olarak yapamazsınız.

+1

Soru belirsiz. this.popItem bu sorunla ne ilgisi var? –

+0

Üzgünüz, bu, sadece benim kodumda nasıl kullanıldığına göre eklenmedi – OasisAsh

+0

Neden bu öneki kullanıyorsunuz? JVM, – Majora320

cevap

0

Doğru sütunları bulma meselesi ve sonra döngü oluk tablosundaki tüm girişleri var ve doğru sütunları ayıklamak:

public static Map<String,List> filterMap(Map<String,List> table, String key, String filter) { 
    Map<String,List> m = new HashMap<String,List>(); 
    List l = table.get(key); 
    if (l != null) { 
     List<Integer> cols = new List<Integer>(); 
     for (int i = 0; i < l.size(); i++) { 
     if ((filter == null && l.get(i) == null) || (filter != null && filter.equals((String)l.get(i)))) { 
      cols.add(new Integer(i)); 
     } 
     } 
     // for each entry in table 
     // extract the items saved in cols and add it to m 
    } 
    return m; 
} 
İlgili konular