关于java整形数组的两个简单操作

来源:互联网 发布:node.js 爬虫 编辑:程序博客网 时间:2024/05/16 11:40

特别无聊,想到好久没用数组了,所以想起来这两个简单的题目,本人也算是菜鸟一名,如果不对或者不规范的地方,请多指教。

第一个,给出两个数组,合并并且去掉相同的部分(假设每个数组自身是没有重复的)

addSize方法在第二个例子里面。是为了增加数组的长度
public class Exchange {
 public static void main(String[] args) {
  int[] a  = {1,2,3,4,5,80,79,78};
  int[] b = {1,2,6,7,8,50,76};
  int[] temp;
  int[] c;
  if(a.length>b.length)
  {
   c = a;
   temp = b;
  }
  else
  {
   c = b;
   temp = a;
  }
  for (int i = 0; i < temp.length; i++) {
   for (int j = 0; j < c.length; j++) {
    if(temp[i]==c[j])
    {
     
     break;
    }
    if(j == c.length-1)
    {
     c = Butong.addSize(c);
     c[c.length-1] = temp[i];
    }
   }
   
  }
  for (int i = 0; i < c.length; i++) {
   System.out.print(c[i]+" ");
  }

  
 }
}

 

第二个:也是关于两个数组之间的操作,给出两个数组,找出不同的值,并且将它们塞入一个新的数组


public class Butong {
 public static void main(String[] args) {
  int[] a  = {1,2,6,8,5};
  int[] b = {1,6,8,7};
  int[] d = {2,6,15};
  int[] c = butong(b, a);
  System.out.println();
  for (int j = 0; j < c.length; j++) {
   System.out.print(c[j]+" ");
  }  
 }
 private static int[] butong(int[] a, int[] d) {
  int[] c = new int[0];
  c = ff(d, a, c);
  c = ff(a, d, c);
  return c;
 }
 /**
  *
  * @param a 作为b的比较对象
  * @param b 和a进行比较,取不同的数作为c的元素
  * @param c 增加原有数组的长度
  * @return 生成的新数组
  */
 private static int[] ff(int[] a, int[] b, int[] c) {
  int t = 0;
  for (int i = 0; i < b.length; i++) {
   for (int j = 0; j < a.length; j++) {
    if(b[i] == a[j])
    {
     t = 0;
     break;
    }
    if(b[i] != a[j] && j==a.length-1)
    {
     t = b[i];
    }
   }  
   if(t != 0)
   {

    c = addSize(c);
    c[c.length-1] = t;
    
   }
  }
  return c;
 }

 /**
  * 为了增加数组的长度
  * @param c生成新的数组
  * @return
  */
 public static int[] addSize(int[] c) {
  int[] temp = new int[c.length + 1];
  for (int w = 0; w < c.length; w++) {
   temp[w] = c[w];
  }
  c = new int[c.length + 1];
  c = temp;
  return c;
 }
}