JAVA中有没有比这更好的处理int数组的方法,该怎么解决
JAVA中有没有比这更好的处理int数组的方法
各位请问一下,根据项目需求现有一组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;
}
大家都知道用自增++取数据,在项目里不好扩展、执行效率也很低,有没有比这更好 的方法,请各位大侠指点一下。谢谢!
------解决方案--------------------
List<Integer> list = new xxxxList<Integer>();
.......
list.toArray();
------解决方案--------------------
各位请问一下,根据项目需求现有一组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;
}
大家都知道用自增++取数据,在项目里不好扩展、执行效率也很低,有没有比这更好 的方法,请各位大侠指点一下。谢谢!
------解决方案--------------------
List<Integer> list = new xxxxList<Integer>();
.......
list.toArray();
------解决方案--------------------
- Java code
那就使用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++]; ... } }
------解决方案--------------------
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);
------解决方案--------------------
用哈希表