各位请问一下,根据项目需求现有一组int[]数据,如:int[] data=new int[100]; 
data= new int[]{12873,12,43,54,6,990,1232,4000,54375,……};
现有的方法是通过index++把数据赋给相应的变量(注:因为int数组数据必须赋给对应的变量)
int index = 0;
      数组数据            变量     
data [index++] ——TimeRefMs;                    
data [index++] —— OffsetIncl;
data [index++] —— MobOffset;
data [index++] —— RefPN;                        
data [index++] —— RefPilotStrength;
data [index++] —— BAND_CLASS;
data [index++] ——CDMA_FREQ;
data [index++] —— BASE_ID;
data [index++] —— SID;
data [index++] —— NID;
data [index++] —— TOTAL_RX_PWR;
data [index++] —— NumPilots;
for (int I = 0; I < NumPilots; I++)
{
data [index++] —— PilotPN;
data [index++] —— PnPhase;
data[index++]——Strength;
data[index++]——RmsErrPhase;
}
大家都知道用自增++取数据,在项目里不好扩展、执行效率也很低,有没有比这更好 的方法,请各位大侠指点一下。谢谢!

解决方案 »

  1.   

    List<Integer> list = new xxxxList<Integer>();
    .......list.toArray();
      

  2.   

    那就使用map吧
    Map<String, Integer> map = new LinkedHashMap<String, Integer>();
    把数组数据保存到map中
    map.put("TimeRefMs", data[index++]);
    map.put("OffsetIncl", data[index++]);
    map.put("MobOffset", data[index++]);
    ...取数据的时候
    int TimeRefMs = map.get("TimeRefMs");
    ...或者把数组数据用一个类封装保存
    class Data {
        int TimeRefMs;
        int OffsetIncl;
        int MobOffset;
        ...    public Data(int[] data) {
            index = 0;
            TimeRefMs = data[index++];
            ...
        }
    }
      

  3.   

    那就使用map吧
    Map<String, Integer> map = new LinkedHashMap<String, Integer>();
    把数组数据保存到map中
    map.put("TimeRefMs", data[index++]);
    map.put("OffsetIncl", data[index++]);
    map.put("MobOffset", data[index++]);
    ...取数据的时候
    int TimeRefMs = map.get("TimeRefMs");
    ...或者把数组数据用一个类封装保存
    class Data {
        int TimeRefMs;
        int OffsetIncl;
        int MobOffset;
        ...    public Data(int[] data) {
            index = 0;
            TimeRefMs = data[index++];
            ...
        }
    }你好,如果用MAP存储数据,那么始次使用data[]数组还是必须要用data[index++]把所有数组里面的数据取出来?
      

  4.   

    List<Integer> dataList = new ArrayList<Integer>();
    dataList.add(TimeRefMs);
    dataList.add(OffsetIncl);
    ...
    dataList.add(NumPilots);
    for(int i = 0; i < NumPilots; i++) {
    dataList.add(PilotPN);
    dataList.add(PnPhase);
    dataList.add(Strength);
    dataList.add(RmsErrPhase);
    }
    //Object[] data = dataList.toArray();//这样得到的是Object[]
    Integer[] data = new Integer[dataList.size()];
    data = dataList.toArray(data);