Java 如何从哈希映射中读出数组?
我在理解如何读出放入哈希映射的数组时遇到了一个问题。 (顺便说一句,我需要将不同的数据类型放入哈希映射、单个值和数组中,我使用的是通用的“Object”类型) 示例代码:Java 如何从哈希映射中读出数组?,java,arrays,hashmap,Java,Arrays,Hashmap,我在理解如何读出放入哈希映射的数组时遇到了一个问题。 (顺便说一句,我需要将不同的数据类型放入哈希映射、单个值和数组中,我使用的是通用的“Object”类型) 示例代码: HashMap map = new HashMap(); map.put("two", new int[]{1,2}); int[] myArray = new int[2]: myArray = (int[])map.get("two"); System.out.println("Array value "+myAr
HashMap map = new HashMap();
map.put("two", new int[]{1,2});
int[] myArray = new int[2]:
myArray = (int[])map.get("two");
System.out.println("Array value "+myArray[0]);
System.out.println("Array value "+myArray[1]);
我在运行时出错
我希望有人能给我一个提示。我找不到我的错误
非常感谢。
Steffen问题在此范围内:
int[] myArray = new int[2]:
int[] myArray = new int[2]:
换成
int[] myArray = new int[2];
除此之外,代码段没有问题。问题在这一行内:
int[] myArray = new int[2]:
int[] myArray = new int[2]:
换成
int[] myArray = new int[2];
除此之外,代码段没有问题。代码应该可以正常工作,但此行除外:
int[] myArray = new int[2]:
int[] myArray = new int[2]:
它使用冒号而不是分号,并毫无意义地创建一个新数组。假设你说你在运行时遇到了一个错误,我怀疑这不是问题所在——但是很难说,因为你没有说错误到底是什么
我还建议使用泛型而不是原始类型,即使值类型只是对象。下面是一个简短但完整的程序,显示了它的工作原理:
import java.util.*;
public class Test {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("two", new int[] { 1, 2 });
int[] myArray = (int[]) map.get("two");
System.out.println("Array value " + myArray[0]);
System.out.println("Array value " + myArray[1]);
}
}
鉴于该代码可以正常工作,请发布一个简短但完整的失败程序,或者至少告诉我们您实际遇到的错误。该代码应该可以正常工作,但此行除外:
int[] myArray = new int[2]:
int[] myArray = new int[2]:
它使用冒号而不是分号,并毫无意义地创建一个新数组。假设你说你在运行时遇到了一个错误,我怀疑这不是问题所在——但是很难说,因为你没有说错误到底是什么
我还建议使用泛型而不是原始类型,即使值类型只是对象。下面是一个简短但完整的程序,显示了它的工作原理:
import java.util.*;
public class Test {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("two", new int[] { 1, 2 });
int[] myArray = (int[]) map.get("two");
System.out.println("Array value " + myArray[0]);
System.out.println("Array value " + myArray[1]);
}
}
考虑到代码是有效的,请发布一个简短但完整的失败程序,或者至少告诉我们您实际遇到了什么错误。@org.life.java:是的。。。我怀疑发布的代码并不是失败的代码。亲爱的,你是对的。代码正在运行。不幸的是,我很快发布了我的问题。这个bug在其他地方,我需要调查。谢谢,再次抱歉。Steffen@org.life.java:是的。。。我怀疑发布的代码并不是失败的代码。亲爱的,你是对的。代码正在运行。不幸的是,我很快发布了我的问题。这个bug在其他地方,我需要调查。谢谢,再次抱歉。SteffenAs您可能希望使用ArrayList而不是[]。然后可以使用泛型等;这是不必要的。您正在使用myArray=(int[])map.get(“two”);重新分配myArray变量;。另外,您可能希望使用ArrayList而不是[]。然后可以使用泛型等;这是不必要的。您正在使用myArray=(int[])map.get(“two”);重新分配myArray变量;。