Java 字符串数组到HashMap集合对象中

Java 字符串数组到HashMap集合对象中,java,hashmap,arrays,Java,Hashmap,Arrays,我有以下几点 String[] temp; 返回 red blue green 我想将字符串数组添加到像HashMap这样的集合obejct中,这样我就可以检索像HashMap这样的任何类中的值 HashMap hash = New HashMap(); hash.get("red"); hash.get("blue"); hash.get("green"); 我该怎么做 谢谢 更新1 String str = "red,blue,green"; String[

我有以下几点

 String[] temp;
返回

red
blue
green
我想将字符串数组添加到像HashMap这样的集合obejct中,这样我就可以检索像HashMap这样的任何类中的值

HashMap hash = New HashMap();
hash.get("red");
hash.get("blue");
hash.get("green");
我该怎么做

谢谢

更新1

     String str = "red,blue,green";
        String[] temp;
        String delimiter = ",";
        temp = str.split(delimiter);
for (int i = 0; i < temp.length; i++) {
System.out.println(temp[i]);
}
String str=“红、蓝、绿”;
字符串[]温度;
字符串分隔符=“,”;
temp=str.split(分隔符);
对于(int i=0;i
使用上面的代码,我希望根据数组中的值检索值。例如,我想通过调用hash.get(“One”)从另一个类中获取值,它将返回红色,hash.get(“Two”)将返回蓝色等等;
HashMap<String, String>() map = new HashMap<String, String>();
map.put(temp[i], temp[i]);//here i have considered key as the value itself.. u can use something else //also.
映射放置(临时[i],临时[i])//在这里,我将key视为值本身。。你也可以用别的东西。
我的疑问是我如何将温度[I]映射为红色、蓝色或绿色

使用哈希映射无法直接解决此问题。现在你需要写

 temp[ someNumberHere ];
所以

生成一个字符串“blue”

如果您有一个hashMap,那么您可以编写

 myColourMap.get( someNumberHere );
所以

将产生“蓝色”。在这两种情况下,您都在将一个值转换为相应的字符串,但您确实需要知道“someNumber”。如果你想要“蓝色”,你需要知道要第一个

您可能需要使用命名良好的常量值:

public Class Colours {

     public static final int RED = 0;
     public static final int BLUE = 1;
     public static final int GREEN = 1; 

     // plus either the array of strings or the hashMap

     public statuc String getColour(int colourNumber ) {
           return myArray[colourNumber]; // or myMap.get(colourNumber)
     }

}
您的客户端现在可以编写如下代码

 Colours.getColour( Colour.RED );
[使用枚举比只使用原始整数更好,但我们现在不要转移对数组和哈希映射的注意力]

现在,您什么时候可能更喜欢hashMap而不是数组?考虑到你可能有更多的颜色,例如12695295可能是“浅粉色”,16443110可能是“薰衣草”。 现在,当您仅使用其中的500个条目时,您确实不希望数组包含16443110个条目。现在HashMap是一个非常有用的东西

 myMap.put( Colour.LAVENDER, 16443110 );
等等

Map hash=newhashmap();
Map<String, String> hash = new HashMap<String, String>();    
for(i = 0 ; i < temp.length(); i++)
{
   hash.put(temp[i], temp[i]);
}
对于(i=0;i
然后您可以从地图中检索
hash.get(temp[i])

使用map hash=New HashMap()创建映射;然后散列。放入(“红色”、“红色”)。。。。您希望检索的“值”是什么?如果您创建一个新的Hashmap,它将在开始时为空。你想从hashmap中得到什么?字符串“红色”?如果已经有了,为什么需要HashMap?要将哪些值与每个字符串关联?除非需要关联的值,否则可以使用列表或将“1”、“2”设置为字符串?还是1,2作为数字?你为什么需要字符串?我试过你的解决方案。我有一个问题,如果我调用hash.get从另一个类调用,我将无法使用temp[I]调用。是的,如果您的hash是公共字段,您可以从另一个类调用。但是要得到散列中的值,你需要知道键。所以我的意思是,无论你是从同一个类调用还是从另一个类调用,你都需要知道键,可能你确实喜欢散列。get(“red”),其中红色是另一个类中的输入。在向HashMap添加值时,我解决了在循环中使用整数和迭代整数值的键值问题。谢谢
 myMap.put( Colour.LAVENDER, 16443110 );
Map<String, String> hash = new HashMap<String, String>();    
for(i = 0 ; i < temp.length(); i++)
{
   hash.put(temp[i], temp[i]);
}