使用另一个数组中的字符串元素创建数组名称

时间:2018-07-11 07:15:54

标签: java arrays

我有一个字符串数组myArray,它是通过从mysql数据库中选择数据来填充的。数据库是动态的,并且会不断变化;随着数据库的变化,myArray中的元素也会不断变化。我已经在代码中实现了以上目标。

我现在想创建一个整数数组,但数组名称是myArray中的元素。例如,如果我有:

String[] myArray = new String[2];
myArray[1] = "string1";
myArray[2] = "string2";

上面的“ string1”和“ string2”来自数据库。 填充myArray之后,我现在想创建一个名称为string1和string2的整数数组,如下所示:

int[] string1 = new int[10];
int[] string2 = new int[10];

当前,myArray的大小为30,但可能会增加到50。

我是Java新手,如果有Java的人可以告诉我如何在代码中实现上述目标,我将不胜感激。

非常感谢

2 个答案:

答案 0 :(得分:1)

一张理想的解决方案是一张地图。以上面的示例为例,您可以构建如下结构:

String[] myArray = new String[2];
myArray[ 0 ] = "string1";
myArray[ 1 ] = "string2";

Map<String, int[]> mapper = new HashMap<>();
mapper.put( myArray[ 0 ], new int[10] );
mapper.put( myArray[ 1 ], new int[25] );
// and so on

然后您可以通过调用以下方式访问int数组:

mapper.get( "string1" );

例如:

System.out.println( mapper.get( "string1" ).length );

将输出:

  

10

答案 1 :(得分:1)

尝试HasMap:

HashMap<String,String> hm=new HashMap<String,String>();

ArrayList<String> YourNames=new ArrayList<String>();
mx.add("Ashvin");
mx.add("solanki");
mx.add("Tank");

hm.put("Ashvin","Amit");
hm.put("Tank","Vijay");
hm.put("Solanki","Rahul");

访问所有值:

for(Map.Entry m:hm.entrySet())
{
    System.out.println(m.getKey()+" "+m.getValue());
}

System.out.println("----------New OutPut---------")

检查Hasmap密钥是否与您的名字相同

例如:

hm.get(x);

x如果Hasmap具有此键,则它包含XYZ之类的Yourname,它返回一些值,否则返回NULL值

for(int i=0;i<YourNames.size();i++)
{
    for(int j=0;j<hm.size();j++)
    {
         if(hm.get(mx.get(i))!=null)
         {
             System.out.println(hm.get(YourNames.get(i))+" ");
             break;
          }
     }
}

--------------------- OutPut ----------------------

Ashvin Amit
Solanki Rahul
Tank Vijay
----------New OutPut---------
Amit 
Vijay