2010-03-28 4 views
2

Я хотел бы использовать Google-коллекцию для того, чтобы сохранить следующий файл в хэш с несколькими ключами и значенияминесколько ключей и значений с Google-коллекции

Key1_1, Key2_1, Key3_1, data1_1, 0, 0 
Key1_2, Key2_2, Key3_2, data1_2, 0, 0 
Key1_3, Key2_3, Key3_3, data1_3, 0, 0 
Key1_4, Key2_4, Key3_4, data1_4, 0, 0 

Первые три столбца являются различные клавиши и последние два целых являются двумя разными значениями. Я уже подготовил код, который пролил строки в кусках.

import java.io.BufferedReader; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 

public class HashMapKey { 

    public static void main(String[] args) throws FileNotFoundException, IOException { 
    String inputFile = "inputData.txt"; 

    BufferedReader br = new BufferedReader(new FileReader(inputFile)); 

    String strLine; 
    while ((strLine = br.readLine()) != null) {  
     String[] line = strLine.replaceAll(" ", "").trim().split(","); 

     for (int i = 0; i < line.length; i++) { 
     System.out.print("[" + line[i] + "]"); 
     } 
     System.out.println(); 
    } 
    } 
} 

К сожалению, я не знаю, как сохранить эту информацию в google-коллекции?

Заранее спасибо.

С наилучшими пожеланиями,

ответ

3

Вы должны определить ключ и значение классов, так что вы можете определить

Map<Key, Value> map = new HashMap<Key, Value>(); 

Обратите внимание на ключ класс должен переопределить равных() и хэш-код().

Google Collections предоставляет небольшую помощь: Object.hashCode() может определить хеш-код, а Maps.newHashMap() может создать карту.

1

Хотите ли вы иметь карту с ключами, состоящую из нескольких объектов?

http://commons.apache.org/collections/apidocs/org/apache/commons/collections/map/MultiKeyMap.html

вы хотите просто псевдоним несколько ключей, чтобы указать на то же значение делать?

Затем вы можете проверить ответ How to implement a Map with multiple keys?

Else поясните, как вы хотите, чтобы карта выглядеть :)

0

У меня есть этот код

import java.io.BufferedReader; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.HashMap; 

public class HashMapKey { 

    public static void main(String[] args) throws FileNotFoundException, IOException { 
    String fFile = "inputData.txt"; 

    BufferedReader br = new BufferedReader(new FileReader(fFile)); 

    HashMap<String, HashMap<String, HashMap<String, String[]>>> mantleMap = 
      new HashMap<String, HashMap<String, HashMap<String, String[]>>>(); 
    HashMap<String, HashMap<String, String[]>> middleMap = 
      new HashMap<String, HashMap<String, String[]>>(); 
    HashMap<String, String[]> inMap = 
      new HashMap<String, String[]>(); 

    String strLine; 
    while ((strLine = br.readLine()) != null) { 

     String[] line = strLine.replaceAll(" ", "").trim().split(","); 

     for (int i = 0; i < line.length; i++) { 
     System.out.print("[" + line[i] + "]"); 
     } 

     inMap.put(line[2], new Integer[]{line[3], line[4]}); 
     middleMap.put(line[1], inMap); 
     mantleMap.put(line[0], middleMap); 

     System.out.println(); 
    } 

    String[] values = mantleMap.get("Key1_1").get("Key2_1").get("Key3_1"); 
    for (String h : values) { 
     System.out.println(h); 
    } 
    } 
} 

, но, к сожалению, я не в состоянии распечатайте содержимое HashMaps.

Как можно распечатать содержимое HashMap?

Смежные вопросы