Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用循环将键/值从StringBuilder放入HashMapJAVA_Java_Hashmap - Fatal编程技术网

如何使用循环将键/值从StringBuilder放入HashMapJAVA

如何使用循环将键/值从StringBuilder放入HashMapJAVA,java,hashmap,Java,Hashmap,我在这里使用了几种技术,所以很难在网上找到帮助。 我需要使用从StringBuilder的一部分获取的值填充HashMap,然后获取键并将它们添加到ArrayList,然后打印列表。但是当我打印时,我会得到一个满是空值的列表。我不知道为什么,我以为它会打印我从StringBuilder获得的值。它应该打印:取自hashmap键的值:ABCDEFGHI。(我之所以使用StringBuilder是因为String是不可变的,这也是正确的想法吗?) 此外,我认为使用循环打印列表是可以的,因为我的键实际

我在这里使用了几种技术,所以很难在网上找到帮助。 我需要使用从
StringBuilder
的一部分获取的值填充
HashMap
,然后获取键并将它们添加到
ArrayList
,然后打印列表。但是当我打印时,我会得到一个满是
空值的列表。我不知道为什么,我以为它会打印我从
StringBuilder
获得的值。它应该打印:
取自hashmap键的值:ABCDEFGHI
。(我之所以使用
StringBuilder
是因为
String
是不可变的,这也是正确的想法吗?)

此外,我认为使用循环打印列表是可以的,因为我的键实际上是数字

我以前从未创建过HashMap,所以可能我遗漏了一些东西。谢谢你的帮助

这是我的代码:

    // create HashMap from String
    StringBuilder alphaNum = new StringBuilder("1A2B3C4D5E6F7G8H9I");

    Map<String, String> myAlphaNum = new HashMap<String, String>(9);

    // for loop puts key and values in map, taken from String
    for (int i = 0; i < alphaNum.length();)
    {
        myAlphaNum.put(alphaNum.substring(i, ++i), alphaNum.substring(i, ++i));
    }
    if (myAlphaNum.containsKey(1))
        System.out.println("Key is there.");
    else
        System.out.println("Key is null.");

    // create ArrayList, add values to it using map keys
    ArrayList<String> arrayList = new ArrayList<String>();

    // for loop gets the "number" keys from HashMap to get the "letter" values
    for (int j = 1; j <= myAlphaNum.size(); j++)
        arrayList.add(myAlphaNum.get(j));


    System.out.print("Values taken from the hashmap keys: ");
    for (String list : arrayList)
        System.out.print(list);
Key is null.

Values taken from the hashmap keys: nullnullnullnullnullnullnullnullnull

myAlphaNum
具有字符串类型的键,因此将int传递给
get
myAlphaNum.get(j)
)将始终返回null

有几种方法可以迭代映射的值(或键或条目)

例如(假设您只关心值):


myAlphaNum
具有字符串类型的键,因此将int传递给
get
myAlphaNum.get(j)
)将始终返回null

有几种方法可以迭代映射的值(或键或条目)

例如(假设您只关心值):


myAlphaNum
具有字符串类型的键,因此将int传递给
get
myAlphaNum.get(j)
)将始终返回null

有几种方法可以迭代映射的值(或键或条目)

例如(假设您只关心值):


myAlphaNum
具有字符串类型的键,因此将int传递给
get
myAlphaNum.get(j)
)将始终返回null

有几种方法可以迭代映射的值(或键或条目)

例如(假设您只关心值):

//从字符串创建HashMap
StringBuilder alphaNum=新的StringBuilder(“1A2B3C4D5E6F7G8H9I”);
Map myAlphaNum=新的HashMap(9);
//for循环将键和值放入映射中,取自字符串
对于(int i=0;i//从字符串创建HashMap
StringBuilder alphaNum=新的StringBuilder(“1A2B3C4D5E6F7G8H9I”);
Map myAlphaNum=新的HashMap(9);
//for循环将键和值放入映射中,取自字符串
对于(int i=0;i//从字符串创建HashMap
StringBuilder alphaNum=新的StringBuilder(“1A2B3C4D5E6F7G8H9I”);
Map myAlphaNum=新的HashMap(9);
//for循环将键和值放入映射中,取自字符串
对于(int i=0;i//从字符串创建HashMap
StringBuilder alphaNum=新的StringBuilder(“1A2B3C4D5E6F7G8H9I”);
Map myAlphaNum=新的HashMap(9);
//for循环将键和值放入映射中,取自字符串
对于(int i=0;i对于(int j=1;j您使用containsKey/get和一个整数作为参数,而您的映射键被定义为String。这就是为什么您得到null

我建议使用
Map myAlphaNum=newhashmap(9);
并在循环中
myAlphaNum.put(Integer.parseInt(alphaNum.substring(I,++I))、alphaNum.substring(I,++I));
。然后您将获得所需的输出

您还可以直接使用
ArrayList
构造函数,该构造函数将
集合
作为参数(或者仅使用sysout
myAlphaNum.values()

// create ArrayList, add values to it using map keys
ArrayList<String> arrayList = new ArrayList<String>(myAlphaNum.values());
System.out.println(arrayList); //[A, B, C, D, E, F, G, H, I]
//创建ArrayList,使用映射键向其添加值
ArrayList ArrayList=新的ArrayList(myAlphaNum.values());
System.out.println(arrayList);//[A,B,C,D,E,F,G,H,I]
你是一个
 // create HashMap from String
        StringBuilder alphaNum = new StringBuilder("1A2B3C4D5E6F7G8H9I");

        Map<String, String> myAlphaNum = new HashMap<String, String>(9);

        // for loop puts key and values in map, taken from String
        for (int i = 0; i < alphaNum.length();)
        {
            myAlphaNum.put(alphaNum.substring(i, ++i), alphaNum.substring(i, ++i));
        }

        System.out.println(myAlphaNum);
        if (myAlphaNum.containsKey(1))
            System.out.println("Key is there.");
        else
            System.out.println("Key is null.");

        // create ArrayList, add values to it using map keys
        ArrayList<String> arrayList = new ArrayList<String>();

        // for loop gets the "number" keys from HashMap to get the "letter" values
        for (int j = 1; j <= myAlphaNum.size(); j++)
            arrayList.add(myAlphaNum.get(j+""));


        System.out.print("Values taken from the hashmap keys: ");
        for (String list : arrayList)
            System.out.print(list);
// create ArrayList, add values to it using map keys
ArrayList<String> arrayList = new ArrayList<String>(myAlphaNum.values());
System.out.println(arrayList); //[A, B, C, D, E, F, G, H, I]