特别无聊,想到好久没用数组了,所以想起来这两个简单的题目,本人也算是菜鸟一名,如果不对或者不规范的地方,请多指教。
第一个,给出两个数组,合并并且去掉相同的部分(假设每个数组自身是没有重复的)
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;
}
}