我想创建一个存储公司股票的名称(String)和值(整数)的数组,但我不知道如何去做。
答案 0 :(得分:1)
Object[]
可以同时包含String
和Integer
个对象。这是一个简单的例子:
Object[] mixed = new Object[2];
mixed[0] = "Hi Mum";
mixed[1] = Integer.valueOf(42);
...
String message = (String) mixed[0];
Integer answer = (Integer) mixed[1];
但是,如果你像这样使用Object[]
,你通常需要在访问元素时使用instanceof
和/或类型转换。
任何常规涉及instanceof
和/或类型演员的设计都需要怀疑。在大多数情况下,有更好的(更面向对象,更有效,更不易碎)实现相同目的的方式。
在您的特定用例中,您真正需要的是一个映射对象,它从String
(名称)映射到Integer
(股票数量)。 Java的优点是存在提供此功能的现有库类;例如HashMap<K,V>
类,String
作为键类型,Integer
作为值类型。
另一种可能性可能是某些自定义或通用对类的数组List
或Set
。它们具有与Map
类型不同的语义属性。
答案 1 :(得分:0)
您可以使用数组声明或数组文字(但只有在声明并立即影响变量时,才能使用数组文字重新分配数组。)
对于原始类型:
int[] myIntArray = new int[3];
int[] myIntArray = {1,2,3};
int[] myIntArray = new int[]{1,2,3};
对于类,例如String,它是相同的:
String[] myStringArray = new String[3];
String[] myStringArray = {"a","b","c"};
String[] myStringArray = new String[]{"a","b","c"};
额外信息: 如果你知道用Java编码,这里有一些教程:http://www.youtube.com/watch?v=Cfd9DOnuF9w
-HAPPY CODING!
答案 2 :(得分:0)
您有两种选择:
public class Value { public String name; public int number; } ... public Value[] values = new Value[10]; ....
.... public Map<String, int> valueMap = new HashMap<String,int>(); valueMap.put("Sample",10); int value = valueMap.get("Sample"); ...
答案 3 :(得分:0)
您可以使用Map数据结构而不是数组。这基本上是一种具有键值对的Collection。您的字符串名称可以用作键,值是您的整数。
Map<String,Integer> myMap = new HashMap<String, Integer>;
MyMap.put("someone", 6);
请注意,在查找期间使用HashMap比数组具有速度优势。 HashMap查找的复杂性为O(log(n)),而数组的复杂度为O(n)。