package StringPractice;

public class arrayTest {

//1. 把A数组的前5个元素复制到B数组中。

public static void main(String[] args) {

int arrA[]={1,2,3,4,5,6};

int arrB[]=new int[5];

for(int i=0;i<5;i++){

arrB[i]=arrA[i];//把前五位赋值给数组arrB

}

for(int i=0;i<arrA.length;i++){

System.out.println("arrA["+i+"]="+arrA[i]);

}

for(int i=0;i<arrB.length;i++){

System.out.println("arrB["+i+"]="+arrB[i]);

}

}

}

/**

* 2. 有一个长度是10的数组,数组内有10个不重复的数字,要求按从大到小排序。

* @param args

*/

package StringPractice;

import java.util.Random;

public class Array02 {

public static void main(String[] args) {

int arr[]=new int[10];

Random rand=new Random();

for(int i=0;i<arr.length;i++){

arr[i]=rand.nextInt(100);//在0到100的数中随机进行对数组赋值

System.out.print(arr[i]+" ");

}

System.out.println();

//使用冒泡法进行对数组的值进行从小到大进行排序

for(int i=arr.length;i>0;i--){

for(int j=0;j<i-1;j++){

if (arr[j]>arr[j+1]){

int temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;

}

}

}

for(int i=0;i<arr.length;i++){

System.out.print(arr[i]+" ");

}

}

}

/**

* 3. 有一个长度是10的数组,要求删除某一个位置的元素,后边元素前置。

*/

package StringPractice;

import java.util.Scanner;

public class Array03 {

public static void main(String[] args) {

Scanner scanner=new Scanner(System.in);

System.out.println("请输入您要删除的元素的位置:");

int a=scanner.nextInt();

int []arr=new int[]{1,2,3,4,5,6,7,89,0,7};

for(int i=a-1;i<arr.length-1;i++){

arr[i]=arr[i+1];//把后一个元素的值赋给前一个

}

arr[9]=0;

for(int i=0;i<9;i++){

System.out.print(arr[i]+" ");

}

}

}

package StringPractice;

/**

* 4. 有一个长度是10的数组,按递增排列,用户输入一个数,插入适当位置。

* @author liyinxia

*

*/

import java.util.Scanner;

public class Array04 {

public static void main(String[] args) {

// TODO Auto-generated method stub

int []arr=new int[]{2,1,2,7,5,9,6,7,89,3,7};

int len=arr.length;

int []arr1=new int[len+1];

Scanner scanner=new Scanner(System.in);

System.out.println("请您输入一个数:");

int insert=scanner.nextInt();

//冒泡排序

for(int i=arr.length;i>0;i--){

for(int j=0;j<i-1;j++){

if (arr[j]>arr[j+1]){

int temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;

}

}

}

/**

* 进行插入操作

*/

for (int i=0;i<len;i++){

if(arr[i]<=insert){

continue;}

else{

for(int j=0;j<=i;j++){

arr1[j]=arr[j];

}

arr[i]=insert;

for(int k=i+1;k<len+1;k++,i++){

arr1[k]=arr[i];

}

}

}

for(int j=0;j<len+1;j++){

System.out.print(arr1[j]+" ");

}

}

}

//5. 有一个长度是10的数组,数组内有10个数字,要求去掉重复的

package ArrayPractice;

import java.util.Arrays;

import java.util.Random;

public class OneArray_5 {

public static int[] trim(int array[]){

int len=array.length;           //获得传入数组的长度

int brray[]=new int[len];       //声明一个数组,长度为传入数组的长度

int newlen=len;

for(int i=0;i<len;i++){               //初始化brray

brray[i]=0;

}

for(int j=1;j<len;j++){

if(array[j]==array[j-1]){       //记录重复的值

brray[j]=1;

newlen--;

}

}

int newarray[]=new int[newlen];//声明一个数组,长度为除去重复数字的个数

int newId=0;

for(int k=0;k<len;k++){

if(brray[k]==0){

newarray[newId++]=array[k];

}

}

return newarray;//返回的是一个数组

}

public static void main(String[] args){

Random rd=new Random();

int[]array=new int[10];

for(int i=0;i<array.length;i++){

array[i]=rd.nextInt(20);

System.out.print(array[i]+" ");

/*if((i+1)%5==0){

System.out.println();

}*/

}

Arrays.sort(array);

for(int i=0;i<array.length;i++){

System.out.print(array[i]+" ");

/*if((i+1)%5==0){

System.out.println();

}*/

}

int c[]=trim(array);

System.out.println("去除重复数字后的结果:");

for(int i=0;i<c.length;i++){

System.out.print(array[i]+" ");

/*if((i+1)%5==0){

System.out.println();

}*/

}

}

}

//6. 把A数组的第三到第六位之间的元素删除。

package ArrayPractice;

public class Array06 {

public static int[] trim(int array[]){

int len=array.length;

int brray[]=new int[len];

for(int i=0;i<len;i++){

brray[i]=0;

}

int newlen=len;

for(int j=0;j<len;j++){

if(j>=2&&j<=5){

brray[j]=1;

newlen--;

}

}

int newId=0;

int newArray[]=new int[newlen];

for(int k=0;k<len;k++){

if(brray[k]==0){

newArray[newId++]=array[k];

}

}

return newArray;

}

public static void main(String[] args){

int []arr=new int[]{1,2,3,4,5,6,7,89,0,7};

int c[]=trim(arr);

for(int i=0;i<c.length;i++){

System.out.print(c[i]+" ");

}

}

}

/**

* 7. 已知A数组,B数组,定义一个数组C,要求C包含A,B数组中的数据(无重复值)。

*/

package StringPractice;

import java.util.Arrays;

import java.util.Random;

import com.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader.Array;

public class OneArray_07 {

/**

* 将两个数组合并到一个数组中

* @param a

* @param b

* @return

*/

public static int[] combineArray(int a[],int b[]){

int a1=a.length;

int b1=b.length;

int length=a1+b1;

int i,j;

System.out.println("a数组的元素如下");

for( i=0;i<a1;i++){

System.out.print(a[i]+" ");

}

System.out.println();

System.out.println("b数组的元素如下");

for( i=0;i<b1;i++){

System.out.print(b[i]+" ");

}

int newarray[]=new int[length];

for(i=0,j=0;i<a1&&j<b1;){

if(a[i]<b[j]){

newarray[i+j]=a[i];

i++;

}

else{

newarray[i+j]=b[j];

j++;

}

if(i==a1){

System.arraycopy(b,j,newarray,a1+j,b1-j);//把b数组中的从下标为j开始,存放在newarray数组中,下标的变化

}                                 //是从a1+j延续b1-j个数字

if(j==b1){

System.arraycopy(a,i,newarray,b1+i,a1-i);

}

}

return newarray;

}

/**

* 去除重复的数字

* @param array

* @return

*/

public static int[] trim(int array[]){

int len=array.length;           //获得传入数组的长度

int brray[]=new int[len];       //声明一个数组,长度为传入数组的长度

int newlen=len;

for(int i=0;i<len;i++){               //初始化brray

brray[i]=0;

}

for(int j=1;j<len;j++){

if(array[j]==array[j-1]){       //记录重复的值

brray[j]=1;

newlen--;

}

}

int newarray[]=new int[newlen];//声明一个数组,长度为除去重复数字的个数

int newId=0;

for(int k=0;k<len;k++){

if(brray[k]==0){

newarray[newId++]=array[k];

}

}

return newarray;//返回的是一个数组

}

//主函数

public static void main(String[] args){

Random rd=new Random();

int arr1[] =new int[10];

int arr2[]=new int[10];

//对数组进行随机赋值

for(int i=0;i<arr1.length;i++){

arr1[i]=rd.nextInt(20);

}

for(int i=0;i<arr2.length;i++){

arr2[i]=rd.nextInt(20);

}

/*//先对arr1和arr2数组进行排序

Arrays.sort(arr1);

Arrays.sort(arr2);*/

//调用combineArray方法

int newarr3[]=combineArray(arr1,arr2);

System.out.println();

System.out.println("输出合并后未排序的数组值:");

for(int i=0;i<newarr3.length;i++){

System.out.print(newarr3[i]+" ");

}

System.out.println();

Arrays.sort(newarr3);

System.out.println("输出合并后排序的数组值:");

for(int i=0;i<newarr3.length;i++){

System.out.print(newarr3[i]+" ");

}

System.out.println();

//调用trim方法,去除重复数字

int newarr4[]=trim(newarr3);

System.out.println("输出最后的结果,合并后从小到大排列,且无重复数字:");

for (int i=0;i<newarr4.length;i++){

System.out.print(newarr4[i]+" ");

}

}

}

package StringPractice;

public class Array08 {

public static int DiagonalAdd(int array[][]){

int len=array.length;

int diagonal1=0;

int diagonal2=0;

int sum;

/**

* 将两条对角线进行相加

*/

for(int i=0;i<len;i++){

diagonal1+=array[i][i];

diagonal2+=array[len-i-1][i];

}

if(len%2==0){

sum=diagonal1+diagonal2;//判断没有相交,直接相加

}

else{

sum=diagonal1+diagonal2-array[len/2][len/2];//判断有相交的值,需要减去相交的值

}

return sum;

}

public static void main(String[]args){

int arr[][]=new int[6][6];

int a=0;

System.out.println("输出数组中的值:");

for(int i=0;i<arr.length;i++){

for(int j=0;j<arr[i].length;j++){

arr[i][j]=a;

a++;

System.out.print(arr[i][j]+"\t");

}

System.out.println();

}

//调用DiagonalAdd方法

int sum=DiagonalAdd(arr);

System.out.println("对角线的和是:"+sum);

}

}

/**

* 9. 判断一个数组是否对称

*/

package StringPractice;

public class Array09 {

//将矩阵转置

public static int[][] Transposition(int array[][]){

int len=array.length;

int brray[][]=new int[len][len];

for(int i=0;i<len;i++){

for(int j=0;j<len;j++){

brray[j][i]=array[i][j];

}

}

return brray;

}

//主方法

public static void main(String[]args){

int array[][]=new int[][]{{1,2},{2,1}};

int brray[][]=Transposition(array);

int i,j;

boolean boo=true;

for( i=0;i<array.length;i++){

for( j=0;j<array[i].length;j++){

if(array[i][j]!=brray[i][j]){

boo=false;

break;

}

}

}

if(boo){

System.out.println("这个数组是对称的!!");

}

else{

System.out.println("这个数组不是对称的!!");

}

}

}

lesson12Homework的更多相关文章

随机推荐

  1. IntelliJ IDEA 2017.3 多模块右边栏 maven projects,maven项目命名问题

    我新建了一个maven web 模块,命名为cloud-access,可是install的时候,名字突然变为cloud-access Maven Webapp了,我就纳闷了,怎么回事.找了很久没发现原 ...

  2. 《计算机系统要素》第四章 类汇编语言 Hack

    这章通过学习书中自己设计的Hack语言的使用,弄懂汇编语言的工作原理. 汇编语言最接近底层了,因为每个指令对应一个二进制编码. 当这些指令都变成...0101011100101...的形式后,内存Me ...

  3. Qt编写自定义控件13-多态进度条

    前言 多态进度条,顾名思义,有多重状态,其实本控件主要是用来表示百分比进度的,由于之前已经存在了百分比进度条控件,名字被霸占了,按照先来先得原则,只好另外取个别名叫做多态进度条,应用场景是,某种任务有 ...

  4. 安装k8s-1master多node节点

    卸载比较新的18.3版本,安装17.03版本 删除旧版本 sudo yum remove docker \ docker-client \ docker-client-latest \ docker- ...

  5. 2018.05.17 nace关于采购订单的配置笔记

    由于公司的打印都是使用nast作为记录表,在给日企中国客户做扩展时单独配置了一下nace的设置 ZM01作为采购订单批量打印的输出类型,ZM02作为采购订单创建变更时输出的pdf打印输出类型 1.TC ...

  6. 【笔记】Docker入门

    这个文章讲的比较透彻,就不复制粘贴了 <Docker从入门到实践>阅读笔记 Docker安装 环境 root@fudonghai:~# uname -a Linux fudonghai - ...

  7. v-for产生的列表,实现active的切换

    v-for生成序列 <ul> <li v-for="(info,index) in list" :key="info.id" @click=& ...

  8. axios中的qs介绍

    首先qs是一个npm仓库所管理的包,可通过npm install qs命令进行安装. 地址: https://www.npmjs.com/package/qs qs.parse().qs.string ...

  9. java中单例模式的优缺点

    一.什么叫单例 对单例类实例化后拿到的都是堆里面的同一个实例对象,通俗一点就是所有的这个单例的实例化引用都指向堆内存中的一个实例对象(有且仅有一个) 使用场景:对象需要频繁的实例化和销毁,此时考虑使用 ...

  10. 【图像处理与医学图像处理】YUV与RGB格式转换速度几种方法对比

    [视频处理]YUV与RGB格式转换 YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式. 因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式. RGB与 ...