несколько ключей и значений с Google-коллекциями - PullRequest
2 голосов
/ 28 марта 2010

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

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-collection?

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

С уважением,

Ответы [ 3 ]

3 голосов
/ 28 марта 2010

Вам нужно определить классы Key и Value, чтобы вы могли определить

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

Обратите внимание, что класс Key должен переопределять equals () и hashCode ().

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

1 голос
/ 29 марта 2010

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

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

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

Тогда вы можете проверить ответ Как реализовать карту с несколькими ключами?

Иначе, пожалуйста, уточните, как вы хотите, чтобы карта выглядела:)

0 голосов
/ 12 апреля 2010

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

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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...