字符串数组到HashMap集合对象

时间:2011-08-02 06:07:12

标签: java hashmap arrays

我有以下

 String[] temp;

返回

red
blue
green

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

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

使用上面的代码,我想根据数组中的值检索值。例如。我想通过调用hash.get(“One”)从另一个类中获取值,这将返回red,hash.get(“Two”)将返回蓝色等等。

3 个答案:

答案 0 :(得分:2)

Map<String, String> hash = new HashMap<String, String>();    
for(i = 0 ; i < temp.length(); i++)
{
   hash.put(temp[i], temp[i]);
}

然后你可以从地图中检索 hash.get(temp [i]);

答案 1 :(得分:-1)

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.

答案 2 :(得分:-1)

  

我怀疑我如何用红色,蓝色或绿色映射temp [i]?

使用哈希映射不会直接解决此问题。目前你需要写

 temp[ someNumberHere ];

所以

 temp[ 1 ];

产生一个字符串“blue”

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

 myColourMap.get( someNumberHere );

所以

 myColourMap.get( 1 );

会产生“蓝色”。在任何一种情况下,您都要将值转换为相应的字符串,但您确实需要知道“someNumber”。如果你想要“蓝色”,你需要知道要求1号。

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

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

[最好使用枚举而不仅仅是原始的int,但是现在不要从数组和hashMaps转移]。

现在您何时可能更喜欢hashMap而不是数组?考虑一下你可能有更多的颜色,例如12695295可能是“淡粉色”而16443110可能是“淡紫色”。

现在你真的不想要一个包含16,443,110个条目的数组,当你只使用它们中的500个时。现在HashMap是一个非常有用的东西

 myMap.put( Colour.LAVENDER, 16443110 );

等等。