Структура с массивом char в качестве индекса и int в качестве значения - PullRequest
1 голос
/ 10 октября 2011

Я перевожу функцию Javascript на Java, и у меня возникают проблемы с этой переменной text, описанной ниже, как объявить и использовать ее в Java:

Javascript:

var text={}; // Index will be several arrays, and value an integer
var word; // Will contain several chars, like a string
var myChar; // Will contain only one char
var value; // Will contain one integer
[...]
if(text[word+myChar]!=null)
{ // In this comparison, word is "hell", myChar is "o" and value is 1234
  text[word+myChar]=value; 
}

Спасибо за вашу помощь

Ответы [ 2 ]

2 голосов
/ 10 октября 2011

Было бы очень полезно, если бы мы увидели, что вы уже пробовали (на Java). Это может помочь нам лучше понять, что вы пытаетесь достичь.

Вот мои советы из того, что я могу собрать:

  1. Похоже, вы создаете отображение строк -> целых чисел (или что-то в этом роде). Это было бы четко представлено HashMap<K,V> в Java. Это скажет: «Сопоставьте экземпляр значения типа V с ключом типа K», где вы можете выбрать K и V. Таким образом, вы можете создать экземпляр HashMap<String, Integer>, где вы можете получить / установить целочисленные значения в хэш-карте для конкретного строкового ключа.
  2. Вы можете использовать конкатенацию строк (я полагаю, что это операция, возникающая при использовании word + myChar в JS) аналогичным образом в Java. Из этого вы сформируете один String объект.
  3. С HashMap вы можете использовать containsKey(K key) или get(K key) в зависимости от того, хотите ли вы увидеть, существует ли ключ на карте вообще, или значение этого ключа на карте не -ноль. Это будет зависеть от контекста проблемы и того, чего вы хотите достичь.

Вот быстрый (не проверенный) пример того, как это может выглядеть:

import java.util.*;

public class WordIntMap {
    public static void main(String[] args) {
        HashMap<String, Integer> text = new HashMap<String, Integer>();
        String word = "hell";
        char myChar = 'o';
        int value = 1234;

        String key = word + myChar;

        if (text.get(key) != null) {
            text.put(key, value);
        }
    }
}
2 голосов
/ 10 октября 2011
Map<String, Integer> text = new HashMap<String, Integer>();

...

if (text.containsKey(word+myChar)) {
  text.put(word+myChar, value);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...