合并同类型的数组

Java 中如何合并同类型的数组呢?

比如我有三个int类型的数组,分别是

int[] a = { 1, 2, 3 };

int[] b = { 4, 5 };

int[] c = { 6, 8 };

想合并为一个大的数组,怎么办呢?

Java代码  

  1. public static int[] mergeArray(int[]... a) {  
  2.         // 合并完之后数组的总长度  
  3.         int index = 0;  
  4.         int sum = 0;  
  5.         for (int i = 0; i < a.length; i++) {  
  6.             sum = sum + a[i].length;  
  7.         }  
  8.         int[] result = new int[sum];  
  9.         for (int i = 0; i < a.length; i++) {  
  10.             int lengthOne = a[i].length;  
  11.             //拷贝数组  
  12.             System.arraycopy(a[i], 0, result, index, lengthOne);  
  13.             index = index + lengthOne;  
  14.         }  
  15.         return result;  
  16.     }  
  17.   
  18. //测试方法,把a、b、c三个数组合并为result(同类型的数组,长度为三个数组长度总和)  
  19.     @Test  
  20.     public void testMerge() {  
  21.         int[] a = { 1, 2, 3 };  
  22.         int[] b = { 4, 5 };  
  23.         int[] c = { 6, 8 };  
  24.         int[] result = mergeArray(a, b, c);  
  25.         for (int i = 0; i < result.length; i++) {  
  26.             System.out.print(result[i] + "  ");  
  27.         }  
  28.         System.out.println();  
  29.         System.out.println("length:"+result.length);  
  30.     }  

 

 

时间: 2024-12-24 11:34:07

合并同类型的数组的相关文章

C# 3.0语言新特性(语言规范):6 具有隐式类型的数组

规范|数组 原文:<C# Version 3.0 Specification>,Microsoft翻译:lover_P 数组创建表达式的语法被扩展为支持具有隐式类型的数组创建表达式: array-creation-expression:...new  [  ]  array-initializer 在一个具有隐式类型的数组创建表达式中,数组实例的类型通过数组初始化器中指定的元素来推断.特别地,数组初始化器中的表达式类型形成的集合中,必须恰好有一个类型使得其他类型都可以隐式地转换为该类型,并且该

java数组-Java合并两个升序数组

问题描述 Java合并两个升序数组 假如ab是两个已排好序的升序数组,将数组b合并到a中,使a成为一个升序数组(这里假设a的长度大于等于a和b的元素个数之和) 解决方案 b的元素合并到a中,很可能涉及a中元素的移位,移位对于数组来说效率较低,所以建议把a和b的元素先合并到c中,然后再把c的地址赋给a:那么a.b合并的代码如下:(假设a.b是int型的数组,如果是其他类型的数组要稍稍修改程序才能用,主要是修改数组类型定义和判断数组元素大小的地方) public int [] combine(int

java se-使用泛型打印输出任意类型的数组,为什么调用时有错误?

问题描述 使用泛型打印输出任意类型的数组,为什么调用时有错误? import java.util.Arrays; public class FanXing { public static void printMatrix(T[][] matrix){ for(int i=0;i<matrix.length;i++){ System.out.println(Arrays.toString(matrix[i])); } } public static void main(String[] args)

全显示成正数-安卓开发中如何使一个byte类型的数组内的数据不显示成负数

问题描述 安卓开发中如何使一个byte类型的数组内的数据不显示成负数 在做Android开发的时候一个byte类型的数组result,里面有比较大的正数,需要做什么样的处理才能使他显示的全是正数:求大神指导,给个代码 byte[] result for (int i = 0; i < result.length; i++) Log.e("读出全部page", "byte " + i + " is " + result[i]); 解决方案 f

java-小白求教!布尔类型的数组,所有元素做或运算,用Java应该怎么写啊?

问题描述 小白求教!布尔类型的数组,所有元素做或运算,用Java应该怎么写啊? 小白求教!布尔类型的数组,所有元素做或运算,用JAVA应该怎么写啊? 解决方案 public static void main(String[] args) { boolean[] booleans = {false,true,false,false,true,false}; boolean res = false ; for(boolean b : booleans){ res |= b; System.out.p

c语言问题 新手求解-c需要char类型定义数组的问题

问题描述 c需要char类型定义数组的问题 #include #include #define PRAISE "What a super marvelous name!" int main(void) { char name[40]; printf("What's your name?n"); scanf("%s",name); printf("Hello,%s,%sn",name,PRAISE); printf("

ios-怎么随机生成一个CGFloat类型的数组

问题描述 怎么随机生成一个CGFloat类型的数组 (void)awakeFromNib{ int count = 50; for (int i = 0; i < count; i++) { // CGFloat x[count]= {}; CGFloat y = arc4random_uniform(667); CGFloat x = arc4random_uniform(375); CGPoint num[i] = (x,y); } }

储存数组-SqLite怎么储存一个String类型的数组?

问题描述 SqLite怎么储存一个String类型的数组? 我想用特殊符号串起来形成一个String变量,但是在重新读取的时候该怎变成String数组呢? 解决方案 你用了特殊符号分割组成的字符串,从数据库读取出来后,再split拆分回数组. 解决方案二: sqlite对于char和vchar都用TEXT类型存储,不管长度是否多少.读取当然用sqlite提供的行读取函数族了,包括了以整数或以char*读出来 解决方案三: 用逗号分隔存储,取出来的时候用逗号分隔成数组即可.

jsp-怎么把service层的一个model类型的数组通过controller层传递给一个JSP并显示出来

问题描述 怎么把service层的一个model类型的数组通过controller层传递给一个JSP并显示出来 如题,我的controller里的函数是: @RequestMapping("/storelogin.do")//查询到请求映射规则 public String Swelcome(@RequestParam(value="dsid")String did,@RequestParam(value="dsps")String dsps,Mo