结构使用char数组作为索引,int作为值

时间:2011-10-09 23:04:10

标签: java javascript arrays types hashtable

我正在将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 个答案:

答案 0 :(得分:2)

Map<String, Integer> text = new HashMap<String, Integer>();

...

if (text.containsKey(word+myChar)) {
  text.put(word+myChar, value);
}

答案 1 :(得分:2)

如果我们能够看到你到目前为止所尝试的内容(用Java),那将非常有用。这可以帮助我们更好地了解您正在努力实现的目标。

以下是我可以收集的提示:

  1. 您似乎正在创建字符串映射 - &gt;整数(或类似的东西)。这可以用Java中的HashMap<K,V>清楚地表示。这将说&#34;将类型V的值的实例映射到类型为K&#34的键;其中K和V可由您决定。有了这个,你可以创建一个HashMap<String, Integer>的实例,你可以在哈希映射中获取/设置特定字符串键的整数值。
  2. 您可以在Java中使用字符串连接(我假设在JS中使用word + myChar时发生的操作)。你可以从中形成一个String对象。
  3. 使用HashMap,您可能希望使用containsKey(K key)get(K key),具体取决于您是否要查看地图中是否存在该密钥,或者是否存在该值地图中的键是非空的。这取决于问题的背景以及您想要完成的任务。
  4. 这是一个快速(未经测试)的例子:

    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);
            }
        }
    }