Java动态Collection对象

时间:2012-11-03 21:06:52

标签: java arrays

对于我们的编程任务,我们必须向用户询问区域名称和该区域的统计(整数),我们必须将整数与区域名称相关联,我们必须能够创建多个区域这就是我关于下一步做什么到目前为止我很困惑我要困惑的是我们必须调用用户创建区域A,区域B,区域C的所有区域,然后用户将从列表中选择一个区域让我们说区域A然后我们必须打印与区域A关联的整数示例区域A包含整数{12,3,6,8]

            ArrayList<String> regions = new ArrayList<String>();

            System.out.print(" Enter Region to Add to List: ");
            regionName = keyb.nextLine();
            keyb.nextLine();
            regions.add(regionName);
            System.out.printf(" Enter Data for %s: " ,regionName);
            regionData = keyb.nextLine();
            String[] reg_Values = regionData.split(" ");
            double[] reg_DoubleValues = new double[reg_Values.length];
            double num;
            for (int i=0; i<reg_Values.length; i++)
            {
                num = Double.parseDouble( reg_Values[i] );
                reg_DoubleValues[i] = num;
                System.out.print(reg_DoubleValues[i]);

            }
            System.out.println();

4 个答案:

答案 0 :(得分:0)

您应该考虑创建一个Region类来保存每个特定区域的数据。这将使代码更多更易于管理。

class Region {
    String name;
    String[] otherInfo;
    double[] otherOtherInfo;

    ...
}

您只需拥有ListRegion个实例,您可以在用户输入有关每个区域的信息时创建这些实例。

答案 1 :(得分:0)

听起来你需要一个Hashmap或一个键值对集合。 假设这些地区是独一无二的。

HashMap<String, List<Integer>>

HashMap<Region,List<Integer>>

或者

创建一个Region类,其成分为List<Integer>

像这样:

public class Region
{
  List<Integer> integers;
  String regionName;
  ....
}

答案 2 :(得分:0)

我认为您最好使用Map/HashMap来保存区域和统计信息,如下所示:

   Map<String, double[]> regionStatisticsMaps = new HashMap<String, double[]>();

现在您可以将值设置为:

   regionStatisticsMaps(regionName, reg_DoubleValues);

答案 3 :(得分:0)

您需要键值对。在 java API 术语中,您需要地图

   Map<String, List<Integer>> map = new HashMap<String, Integer>();

请注意,如果您需要插入订单,请使用LinkedHashMap而不是HashMap,因为HashMap不会维护任何订单。

   Map<String, List<Integer>> map = new LinkedHashMap<String,Integer>();