#java #javascript #arrays #types #hashtable
#java #javascript #массивы #типы #хэш-таблица
Вопрос:
Я перевожу функцию 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;
}
Спасибо за вашу помощь
Ответ №1:
Было бы очень полезно, если бы мы могли посмотреть, что вы пробовали до сих пор (на Java). Это может помочь нам лучше понять контекст того, чего вы пытаетесь достичь.
Вот мои советы из того, что я могу собрать:
- Похоже, вы создаете сопоставление строк -> целых чисел (или что-то в этом роде). Это было бы четко представлено
HashMap<K,V>
в Java. Это будет означать «Сопоставить экземпляр значения типа V с ключом типа K», где K и V могут быть определены вами. С помощью этого вы могли бы создать экземплярHashMap<String, Integer>
, где вы могли бы получать / устанавливать целочисленные значения в хэш-карте по определенному строковому ключу. - Вы могли бы использовать конкатенацию строк (я предполагаю, что это операция, возникающая при использовании word MyChar в JS) аналогичным образом в Java. Вы бы сформировали из этого единый
String
объект. - С помощью
HashMap
вы можете использоватьcontainsKey(K key)
orget(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:
Map<String, Integer> text = new HashMap<String, Integer>();
...
if (text.containsKey(word myChar)) {
text.put(word myChar, value);
}