现在已知数据结构为HashMap<Integer, int[]>,想把里面的int[]抽取出来,合并成一个int[]。求最优算法
解决方案 »
- Android 怎么能取出sdcard下的含有图片的文件夹
- 开机不出现android桌面直接自动运行程序?
- android imageview图片如何设置使其全屏
- 画面缩放怎么实现?
- android问题 求教!!!关于读取sd卡里文件的问题
- gallery滑动增加图片时,有时无法准确定位的问题
- 急!!!如何计算chronometer触发的次数?
- No target selected
- 自定义的一个数据库操作类,与ContentProvider扩展类有何异同?
- ListView筛选功能实现
- Error receiving broadcast Intent{act=android intent action PACKAGE_REMOVED
- GoogleMap/GPS] Location获取经纬度问题?
HashMap<Integer, int[]> abcd = new HashMap<Integer, int[]>();
abcd.put(0, new int[]{1,2,3});
abcd.put(1, new int[]{4,5,6});
int size = abcd.size();
if(size>0)
{
int length = abcd.get(0).length;
int[] efg = new int[length * size];
for(int i=0; i<size; i++)
{
int k = i * length;
int tmp[] = abcd.get(i);
for(int j=0; j<length; j++)
{
efg[k + j] = tmp[j];
}
}
//输出结果
length = efg.length;
for(int i=0; i<length; i++)
{
Log.i("shuxiang", "" + efg[i]);
}
}
HashMap<Integer, int[]> map;int len = 0;
for (int[] i : map.values())
len += i.length;
int[] all = new int[len];
int pos = 0;
for (int[] i : map.values()) {
System.arraycopy(i, 0, all, pos, i.length);
pos += i.length;
}
public static void main(String[] args) {
HashMap<Integer, int[]> abcd = new HashMap<Integer, int[]>();
abcd.put(0, new int[] { 1, 2, 3 });
abcd.put(1, new int[] { 4, 5, 6 }); List<Integer> list = new ArrayList<Integer>();
for (int[] value : abcd.values()) {
for (int i : value) {
list.add(i);
}
}
//一定要用int[]的数组吗?如果不需要,上面的list就直接是你想要的了
Integer[] result = (Integer[]) list.toArray(new Integer[list.size()]);
for (Integer i : result) {
System.out.println(i);
}
}