创建一个在java中存储字符串和整数的数组

时间:2014-12-10 13:57:43

标签: java arrays object

我想创建一个存储公司股票的名称(String)和值(整数)的数组,但我不知道如何去做。

4 个答案:

答案 0 :(得分:1)

Object[]可以同时包含StringInteger个对象。这是一个简单的例子:

    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作为值类型。

另一种可能性可能是某些自定义或通用对类的数组ListSet。它们具有与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)

您有两种选择:

  1. 使用数组。
  2. public class Value {
      public String name;
      public int number;
    }
    
    ...
    public Value[] values = new Value[10];
    ....
    
    1. 使用更舒适的地图,特别是您可以使用名称作为键来获取值
    2. ....
      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)。

相关问题