首页编程java编程java数组复制(java中复制数组的方法)

java数组复制(java中复制数组的方法)

编程之家2026-05-291178次浏览

大家好,感谢邀请,今天来为大家分享一下java数组复制的问题,以及和java中复制数组的方法的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

java数组复制(java中复制数组的方法)

java数组的相关操作

1.在Java中所有的数组都在一个缺省的属性Length,用于获取数组中元素的个数.

2.数组的复制System.arraycopy()

3.数组的排序Arrays.sort()

4.在已排序的数组中查找某个元素Arays.binarySearch()*/

import java.util.Arrays;//对数组排序时要导入此包.

class ArrayTest

java数组复制(java中复制数组的方法)

{

public static void main(String[] args)

{

/*int [] num1=new int []{1,2,3};

int [] num2=new int [3];

System.arraycopy(num1,0,num2,0,num1.length);

java数组复制(java中复制数组的方法)

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

{

System.out.println(num2[i]);

}*/

//对象数组的copy

/*Point [] pts1=new Point []{ new Point(1,1),new Point(2,2),new Point(3,3)};

Point [] pts2=new Point[3];

System.arraycopy(pts1,0,pts2,0,pts1.length);

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

{

System.out.println("x="+pts1[i].x+","+"y="+pts1[i].y);

}

pts2[2].x=6;//对pts1[2].x也进行了修改.

pts2[2].y=6;//对pts1[2].y也进行了修改.

System.out.println("x="+pts1[2].x+","+"y="+pts1[2].y);*/

//数组的排序

/*int [] num=new int []{3,1,2};

Arrays.sort(num);

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

{

System.out.println(num[i]);

}

int index=Arrays.binarySearch(num,3);

System.out.println("index="+index);

System.out.println("element="+num[index]);*/

Student [] st=new Student[]{new Student(1,"zhangsan"),

new Student(2,"lisi"),

new Student(3,"wangwu"),

new Student(3,"mybole")};

Arrays.sort(st);

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

{

System.out.println(st[i]);

}

}

}

//要对对象进行排序必须实现comparable接口

class Student implements Comparable

{

int num;

String name;

Student(int num,String name)

{

this.num=num;

this.name=name;

}

//重写toString方法

public String toString()

{

return"number="+num+","+"name="+name;

}

public int compareTo(Object o)//覆盖Comparable中的CompareTo方法.

{

Student s=(Student)o;

//return num>s.num?1:(num==s.num?0:-1);

int rusult=num>s.num?1:(num==s.num?0:-1);//在num相同时,对name进行排序.

if(0==rusult)

{

rusult=name.compareTo(s.name);//对于比较字符类型的,在String类中已经重写的compareTo方法,可以直接使用.

}

return rusult;

}

}

class Point

{

int x,y;

Point(int x,int y)

{

this.x=x;

this.y=y;

}

}

java 反转数组

import java.util.*;

public class TurnChessboard

{

static void printArray(int[][] s)

{

for(int[] i:s)

{

for(int j:i)

System.out.printf("%2d",j);

System.out.println("");

}

}

static int turn(int i)

{

if(i==0)

return 1;

else

return 0;

}

public static void main(String[] args)

{

Scanner in=new Scanner(System.in);

int m,n;

System.out.println("请输入行数和列数(必须是奇数):");

m=in.nextInt();

n=in.nextInt();

while(m%2==0||n%2==0)

{

System.out.println("非法的输入!请重试:");

m=in.nextInt();

n=in.nextInt();

}

int[][] cbd=new int[m][n];

int[] role=new int[m];

int[] cole=new int[n];

int count=0,tempcount=0;

int i,j;

System.out.printf("请输入一个%d*%d棋盘:\n",m,n);

for(i=0;i<m;i++)

for(j=0;j<n;j++)

cbd[i][j]=in.nextInt();

if(m<=n)

{

for(i=0;i<m;i++)

for(j=0;j<n;j++)

role[i]+=cbd[i][j];

for(i=0;i<m;i++)

if(role[i]%2==1)

{

for(j=0;j<n;j++)

cbd[i][j]=turn(cbd[i][j]);

count++;

System.out.printf("第%d次翻转后的棋盘(变换第%d行):\n",count,i+1);

printArray(cbd);

}

for(j=0;j<n;j++)

for(i=0;i<m;i++)

cole[j]+=cbd[i][j];

for(int t1:cole)

if(t1%2==1)

tempcount++;

if(tempcount%2==0)

{

for(j=0;j<n;j++)

if(cole[j]%2==1)

{

for(i=0;i<m;i++)

cbd[i][j]=turn(cbd[i][j]);

count++;

System.out.printf("第%d次翻转后的棋盘(变换第%d列):\n",count,j+1);

printArray(cbd);

}

System.out.printf("\n需要进行%d次翻转\n",count);

}

else

System.out.printf("\n不能通过有限的反转使行或列的1的个数为偶数!\n");

}

else

{

for(j=0;j<n;j++)

for(i=0;i<m;i++)

cole[j]+=cbd[i][j];

for(j=0;j<n;j++)

if(cole[j]%2==1)

{

for(i=0;i<m;i++)

cbd[i][j]=turn(cbd[i][j]);

count++;

System.out.printf("第%d次翻转后的棋盘(变换第%d列):\n",count,j+1);

printArray(cbd);

}

for(i=0;i<m;i++)

for(j=0;j<n;j++)

role[i]+=cbd[i][j];

for(int t2:role)

if(t2%2==1)

tempcount++;

if(tempcount%2==0)

{

for(i=0;i<m;i++)

if(role[i]%2==1)

{

for(j=0;j<n;j++)

cbd[i][j]=turn(cbd[i][j]);

count++;

System.out.printf("第%d次翻转后的棋盘(变换第%d行):\n",count,i+1);

printArray(cbd);

}

System.out.printf("\n需要进行%d次翻转\n",count);

}

else

System.out.printf("\n不能通过有限的翻转使行或列的1的个数为偶数!\n");

}

}

}

呀,真麻烦,本来以为一会就能写出来呢

java 中 String 数组怎么动态赋值

首先明确一下数组的初始化:

//静态初始化

inta[]={1,2,3};

//动态初始化

inta[];a=newint[3];a[0]=1;a[1]=2;a[2]=3;

//默认初始化

inta[]=newint[5];JAVA是强类型,数组类型一旦声明,就不能更改了;

如果数组长度确定,我想所谓的“动态赋值”用循环应该可以搞定;

如果数组的长度是不确定的,我认为你这个提问才有点价值,因为这需要根据具体情况来改变数组的长度,告诉你java是怎么干的,用的System.arraycopy,jdk里好多操作数组的源码都是用的这个,比如ArrayList的实现

闲着没事写了个小例子玩玩:

importjava.util.Random;

importjava.util.Scanner;

/**

*

*@authorLYTG

*@since2015-12-29上午12:21:09

*/

publicclassDemoTest{

/**

*@authorLYTG

*@paramargs

*/

publicstaticvoidmain(String[]args){

test2();

}

/**

*@authorLYTG

*@paramarray

*/

publicstaticvoidout(String[]array){

if(array==null){

System.out.println("null");

return;

}

if(array.length<1){

System.out.println("{}");

return;

}

StringBuffersb=newStringBuffer();

sb.append("{\"");

sb.append(array[0]);

sb.append("\"");

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

sb.append(",\"");

sb.append(array[i]);

sb.append("\"");

}

sb.append("}");

System.out.println(sb.toString());

}

/**

*声明一个长度为5的String类型数组,并为每个数组元素赋值一个随机整数

*@authorLYTG

*/

publicstaticvoidtest1(){

String[]array=newString[5];

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

array[i]=String.valueOf(newRandom().nextInt());

}

out(array);

}

/**

*在控制台输入字符,把每次输入的字符保存到一个数组中,

*如果输入的字符串中包含空格,则切割后再分别保存到此数组中,

*在每次输入完成后输出整个数组,直到手动终止程序

*@authorLYTG

*/

privatestaticString[]array=newString[0];

publicstaticvoidtest2(){

Scannersc=newScanner(System.in);

System.out.println("请输入一串字符(输入完请敲回车):");

Stringinput=sc.nextLine();

if(input.contains("")){

String[]a=input.split("");

intarrayLength=array.length;

intaLength=a.length;

String[]newArray=newString[arrayLength+aLength];

System.arraycopy(array,0,newArray,0,arrayLength);

System.arraycopy(a,0,newArray,arrayLength,aLength);

array=newArray;

}else{

intarrayLength=array.length;

String[]newArray=newString[arrayLength+1];

System.arraycopy(array,0,newArray,0,arrayLength);

newArray[arrayLength]=input;

array=newArray;

}

out(array);

test2();

}

}

好了,关于java数组复制和java中复制数组的方法的问题到这里结束啦,希望可以解决您的问题哈!

php源码网络验证系统(php源码网络验证系统最新版本更新内)围攻砮皂寺,砮皂