首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HashMap集合对象中的字符串数组

HashMap集合对象中的字符串数组
EN

Stack Overflow用户
提问于 2011-08-02 14:07:12
回答 3查看 11.2K关注 0票数 0

我有以下几点

代码语言:javascript
复制
 String[] temp;

它会返回

代码语言:javascript
复制
red
blue
green

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

代码语言:javascript
复制
HashMap hash = New HashMap();
hash.get("red");
hash.get("blue");
hash.get("green");

我该怎么做呢?

谢谢

更新1

代码语言:javascript
复制
     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")从另一个类获取值,它返回红色,hash.get("Two")返回蓝色,依此类推。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-02 14:29:07

代码语言:javascript
复制
Map<String, String> hash = new HashMap<String, String>();    
for(i = 0 ; i < temp.length(); i++)
{
   hash.put(temp[i], temp[i]);
}

然后,您可以从地图中检索hash.get (tempi);

票数 3
EN

Stack Overflow用户

发布于 2011-08-02 14:12:04

代码语言:javascript
复制
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.
票数 -1
EN

Stack Overflow用户

发布于 2011-08-02 14:27:02

我怀疑如何将tempi映射为红色、蓝色或绿色?

使用散列映射不能直接解决这个问题。目前,您需要编写

代码语言:javascript
复制
 temp[ someNumberHere ];

所以

代码语言:javascript
复制
 temp[ 1 ];

会产生一个字符串"blue“

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

代码语言:javascript
复制
 myColourMap.get( someNumberHere );

所以

代码语言:javascript
复制
 myColourMap.get( 1 );

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

您需要的可能是使用命名得当的常量值:

代码语言:javascript
复制
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)
     }

}

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

代码语言:javascript
复制
 Colours.getColour( Colour.RED );

使用枚举比只使用原始It更好,但我们现在不要从数组和hashMaps中转移。

现在,什么时候你可能更喜欢hashMap而不是数组呢?考虑到你可能有更多的颜色,例如12695295可能是“浅粉色”,16443110可能是“淡紫色”。

现在,当您只使用大约500个条目时,您确实不想要一个包含16,443,110个条目的数组。现在,HashMap是一个非常有用的东西

代码语言:javascript
复制
 myMap.put( Colour.LAVENDER, 16443110 );

诸若此类。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6907899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档