public class Arrays{
//求两数组的交集,使交集重新生成一个数组
public static int[] include(int[] a,int[] b){
int temp=0;
int[] arr=new int[a.length];
for(int i=0;i<a.length;i++){
for(int j=0;j<b.length;j++){
if(a[i]==b[j]){
arr[temp]=a[i];
temp++;
}
}
}
int[] ras=new int[temp];
for(int i=0;i<temp;i++){
ras[i]=arr[i];
}
return ras;
}
//两数组交叉成一个新数组 例 int[] a={1,3,5,7,9,10};int[] b={2,4}; result: int[]c={1,2,3,4,5,7,9,10};
public static int[] merge(int[] a,int[] b){
int[]c=new int[a.length+b.length];
int m=0;
int n=0;
for(int i=0;i<c.length;i++){
if(i%2==0){
if(m>a.length-1){
c[i]=b[n];
}
else{
c[i]=a[m];
m++;
}
}
else{
if(n>b.length-1){
c[i]=a[m];
}
else{
c[i]=b[n];
n++;
}
}
}
return c;
}
//在数组的中间插入一个元素组成新数组
public static int[] insert(int[]arr,int x){
int[] arrs=new int[arr.length+1];
if(arr.length%2==0){
for(int i=0;i<arr.length/2;i++){
arrs[i]=arr[i];
}
arrs[arr.length/2]=x;
for(int i=arr.length/2;i<arr.length;i++){
arrs[i+1]=arr[i];
}
}else{
for(int i=0;i<arr.length/2+1;i++){
arrs[i]=arr[i];
}
arrs[arr.length/2+1]=x;
for(int i=arr.length/2+1;i<arr.length;i++){
arrs[i+1]=arr[i];
}
}
return arrs;
}
//删除数组的中间元素
public static int[] remove(int[] arr){
int[] arrs=new int[arr.length-1];
for(int i=0;i<arr.length/2;i++){
arrs[i]=arr[i];
}
for(int j=arr.length/2+1;j<arr.length;j++){
arrs[j-1]=arr[j];
}
return arrs;
}
//两个数组合并成一个新的数组
public static int[] add(int[]a,int[]b){
int[] c=new int[a.length+b.length];
for(int i=0;i<a.length;i++){
c[i]=a[i];
}
for(int j=0;j<b.length;j++){
c[a.length+j]=b[j];
}
return c;
}
//删除数组中与指定n相同的元素
public static int[] delElement(int arrs[],int n) {
int temp=0;
int[] arr=new int[arrs.length];
for(int i=0;i<arrs.length;i++){
if(arrs[i]!=n){
arr[temp]=arrs[i];
temp++;
}
}
int[] ras=new int[temp];
for(int i=0;i<ras.length;i++){
ras[i]=arr[i];
}
return ras;
}
//比较两个数组的大小
public static int compare(int[] arr1,int[] arr2) {
int flag=0;
if(arr1.length!=arr2.length) {
if(arr1.length>arr2.length) {
flag=1;
} else {
flag=2;
}
}else {
for(int i=0;i<arr1.length;i++) {
if(arr1[i]>arr2[i]) {
flag=1; break;
}else if(arr1[i]<arr2[i]) {
flag=2;break;
}
}
}
return flag;
}
//取数组中<=min >=max 的元素组成的新数组
public static int[] delElement(int arrs[],int min,int max) {
int[]arr=new int[arrs.length];
int temp=0;
for(int i=0;i<arrs.length;i++){
if(arrs[i]<=min || arrs[i]>=max){
arr[temp]=arrs[i];
temp++;
}
}
int []ras=new int[temp];
for(int i=0;i<temp;i++){
ras[i]=arr[i];
}
return ras;
}
//求两个数组的并集 如int[]arr1={1,2,3,5,8}; int[]arr2={2,5,7,8,9}; result: int[]arr={1,2,3,5,7,8,9};
public static int[] merges(int[] arr1, int[] arr2) {
int[] arr3 =new int[arr1.length];
int ai= 0;
for(int i= 0; i<arr1.length ;i++){ //此循环求两数组相同的元素组成的新数组arr3[]
for(int j=0; j<arr2.length;j++){
if(arr1[i]==arr2[j]){
arr3[ai]=arr1[i];
ai++;
}
}
}
int[] arr4 = new int[arr2.length-ai];
int a4=0;
int a3= 0;
for(int i = 0 ;i<arr2.length; i++){ //数组arr2中除去arr3[]中得到的新数组arr4
if(arr2[i]!=arr3[a3]){
arr4[a4]=arr2[i];
a4++;
}else{
a3++;
}
}
int[] arr = new int[arr1.length+arr4.length];
for(int i = 0 ;i<arr.length; i++){
if(i<arr1.length){
arr[i]=arr1[i];
}else{
arr[i]=arr4[i-arr1.length];
}
}
return arr;
}
//打印数组
public static void printArray(int[]arr){
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
//求两数组的交集,使交集重新生成一个数组
public static int[] include(int[] a,int[] b){
int temp=0;
int[] arr=new int[a.length];
for(int i=0;i<a.length;i++){
for(int j=0;j<b.length;j++){
if(a[i]==b[j]){
arr[temp]=a[i];
temp++;
}
}
}
int[] ras=new int[temp];
for(int i=0;i<temp;i++){
ras[i]=arr[i];
}
return ras;
}
//两数组交叉成一个新数组 例 int[] a={1,3,5,7,9,10};int[] b={2,4}; result: int[]c={1,2,3,4,5,7,9,10};
public static int[] merge(int[] a,int[] b){
int[]c=new int[a.length+b.length];
int m=0;
int n=0;
for(int i=0;i<c.length;i++){
if(i%2==0){
if(m>a.length-1){
c[i]=b[n];
}
else{
c[i]=a[m];
m++;
}
}
else{
if(n>b.length-1){
c[i]=a[m];
}
else{
c[i]=b[n];
n++;
}
}
}
return c;
}
//在数组的中间插入一个元素组成新数组
public static int[] insert(int[]arr,int x){
int[] arrs=new int[arr.length+1];
if(arr.length%2==0){
for(int i=0;i<arr.length/2;i++){
arrs[i]=arr[i];
}
arrs[arr.length/2]=x;
for(int i=arr.length/2;i<arr.length;i++){
arrs[i+1]=arr[i];
}
}else{
for(int i=0;i<arr.length/2+1;i++){
arrs[i]=arr[i];
}
arrs[arr.length/2+1]=x;
for(int i=arr.length/2+1;i<arr.length;i++){
arrs[i+1]=arr[i];
}
}
return arrs;
}
//删除数组的中间元素
public static int[] remove(int[] arr){
int[] arrs=new int[arr.length-1];
for(int i=0;i<arr.length/2;i++){
arrs[i]=arr[i];
}
for(int j=arr.length/2+1;j<arr.length;j++){
arrs[j-1]=arr[j];
}
return arrs;
}
//两个数组合并成一个新的数组
public static int[] add(int[]a,int[]b){
int[] c=new int[a.length+b.length];
for(int i=0;i<a.length;i++){
c[i]=a[i];
}
for(int j=0;j<b.length;j++){
c[a.length+j]=b[j];
}
return c;
}
//删除数组中与指定n相同的元素
public static int[] delElement(int arrs[],int n) {
int temp=0;
int[] arr=new int[arrs.length];
for(int i=0;i<arrs.length;i++){
if(arrs[i]!=n){
arr[temp]=arrs[i];
temp++;
}
}
int[] ras=new int[temp];
for(int i=0;i<ras.length;i++){
ras[i]=arr[i];
}
return ras;
}
//比较两个数组的大小
public static int compare(int[] arr1,int[] arr2) {
int flag=0;
if(arr1.length!=arr2.length) {
if(arr1.length>arr2.length) {
flag=1;
} else {
flag=2;
}
}else {
for(int i=0;i<arr1.length;i++) {
if(arr1[i]>arr2[i]) {
flag=1; break;
}else if(arr1[i]<arr2[i]) {
flag=2;break;
}
}
}
return flag;
}
//取数组中<=min >=max 的元素组成的新数组
public static int[] delElement(int arrs[],int min,int max) {
int[]arr=new int[arrs.length];
int temp=0;
for(int i=0;i<arrs.length;i++){
if(arrs[i]<=min || arrs[i]>=max){
arr[temp]=arrs[i];
temp++;
}
}
int []ras=new int[temp];
for(int i=0;i<temp;i++){
ras[i]=arr[i];
}
return ras;
}
//求两个数组的并集 如int[]arr1={1,2,3,5,8}; int[]arr2={2,5,7,8,9}; result: int[]arr={1,2,3,5,7,8,9};
public static int[] merges(int[] arr1, int[] arr2) {
int[] arr3 =new int[arr1.length];
int ai= 0;
for(int i= 0; i<arr1.length ;i++){ //此循环求两数组相同的元素组成的新数组arr3[]
for(int j=0; j<arr2.length;j++){
if(arr1[i]==arr2[j]){
arr3[ai]=arr1[i];
ai++;
}
}
}
int[] arr4 = new int[arr2.length-ai];
int a4=0;
int a3= 0;
for(int i = 0 ;i<arr2.length; i++){ //数组arr2中除去arr3[]中得到的新数组arr4
if(arr2[i]!=arr3[a3]){
arr4[a4]=arr2[i];
a4++;
}else{
a3++;
}
}
int[] arr = new int[arr1.length+arr4.length];
for(int i = 0 ;i<arr.length; i++){
if(i<arr1.length){
arr[i]=arr1[i];
}else{
arr[i]=arr4[i-arr1.length];
}
}
return arr;
}
//打印数组
public static void printArray(int[]arr){
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}