JAVA中有没有比这更好的处理int数组的方法

阿军 2012-04-17 04:39:55
各位请问一下,根据项目需求现有一组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;
}
大家都知道用自增++取数据,在项目里不好扩展、执行效率也很低,有没有比这更好 的方法,请各位大侠指点一下。谢谢!
...全文
178 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
五哥 2012-04-18
  • 打赏
  • 举报
回复
用哈希表
VanBaston 2012-04-18
  • 打赏
  • 举报
回复
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);
阿军 2012-04-18
  • 打赏
  • 举报
回复
那就使用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++]把所有数组里面的数据取出来?
qybao 2012-04-18
  • 打赏
  • 举报
回复
那就使用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++];
...
}
}
阿军 2012-04-18
  • 打赏
  • 举报
回复
1楼,这看起来有点抽象,能不能给个简单的例子,谢谢!
  • 打赏
  • 举报
回复
List<Integer> list = new xxxxList<Integer>();
.......

list.toArray();

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧