java二维对象数组_java 二维数组和对象数组

java二维对象数组_java 二维数组和对象数组1.二维数组:二维数组就是存储一维数组(内存地址/引用)的数组2.二维数组的初始化1)intintA[][]={{1,2},{2,3},{3,4,5}};2)int[][]intB=newint[3][5];3)int[]intC[]=newint[3][];intC[0]=newint[2];intC[1]=newint[3];intC[2]=newint[5];1…

大家好,又见面了,我是你们的朋友全栈君。

1.二维数组:二维数组就是存储一维数组(内存地址/引用)的数组

dbdd3487b4cabd12bf1e5fea5102d1c6.png

2.二维数组的初始化

1) int intA[][]={
{1,2},{2,3},{3,4,5}};

2) int [][] intB=new int[3][5];

3) int []intC []=new int[3][];

intC[0]=new int[2];

intC[1]=new int[3];

intC[2]=new int[5];

1 public classTestArray2 {2 public static voidmain(String[] args) {3 //二维数组不是规则的矩阵

4 int [] intA[] ={
{1,2},{2,3,4},{3,4,5,6}};5 System.out.println(intA);//[[I@5e265ba4 两个[[表示是二维的 I表示数组是int型 @5e265ba4是内存地址6

7 //声明一一个二维数组,用于存储3个一维数组,每一个一维数据存多少个数组,不知道 ,null

8 int [][]intB=new int[3][];9 intB[0]=new int[3]; //3

10 intB[1]=new int[]{1,2,3,4}; //3

11 intB[2]=new int[2]; //2

12 System.out.println(intB[1]);//[I@156643d4

13 System.out.println(intB[1][1]);//214

15 //声明一个二维数组,同时创建出一维数组,每个一维数组的长度均相同16 //存储三个一维数组,每个一维数组的长度为4

17 int []intC[]=new int[3][4];18 System.out.println(intC);19

20 }21 }

3.二维数组的遍历

1) 普通 for 循环

2) 加强 for 循环

3) 普通 for 循环+加强 for 循环

d4eefefc20946bba6057708c173a83cfd89.jpg

f489c1e7ae8a492fe41963e6e344be5d45d.jpg

public classTestArray3 {public static voidmain(String[] args) {//二维数组

int [] intA[] ={
{1,2},{2,3,4},{3,4,5,6}};//(1)普通for循环

for(int i=0;i

for(int j=0;j

System.out.print(intA[i][j]+”\t”);

}

System.out.println();

}//(2)加强for循环

System.out.println(“\n=========================”);for(int[] arr:intA){ //int[]二维数组中元素的类型, arr迭代变量, intA二维组的名称

for(int i:arr){ //int,一维数组中元素的类型,i,迭代变量,arr,一维数组的名称

System.out.print(i+”\t”);

}

System.out.println();

}//(3)普通与加强for循环的混搭

System.out.println(“\n————————-“);for(int [] arr:intA){//加强for

for(int i=0;i

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

}

System.out.println();

}

System.out.println(“\n————————–“);for(int i=0;i

System.out.print(j+”\t”);

}

System.out.println();

}

}

}

View Code

4.对象数组存储表格数据

张三   19   男

李四   20   女

王五   28   男

数组存基本数据类型,也可以存引用数据类型

对象数组:使用数组存储对象(自定义对象)

83165d3206cd11b2be0b0a1722d0f9b45ce.jpg

19f5dff89ca24ca837d00658abdf0f6d431.jpg

public classPerson {private String name;//姓名

private int age;//年龄

private String gender;//性别//重写toString以打印想要的输出 否则只会打印对象的内存地址

@OverridepublicString toString() {//TODO Auto-generated method stub

return name+”\t”+age+”\t”+gender;//}public Person(String name, intage, String gender) {super();this.name =name;this.age =age;this.gender =gender;

}publicPerson() {super();

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}public intgetAge() {returnage;

}public void setAge(intage) {this.age =age;

}publicString getGender() {returngender;

}public voidsetGender(String gender) {this.gender =gender;

}

View Code

1 public classTestArray {2 public static voidmain(String[] args) {3 //创建一个Person类型的数组,用于存储3个Person类型的对象

4 Person [] pers=new Person[3];5 //创建Person类型的对象

6 Person p1=new Person(“张三”, 19, “男”);7 //将p1对象存储到Person类型的数组中

8 pers[0]=p1;9

10 pers[1]=new Person(“李四”, 20, “女”);11 pers[2]=new Person(“王五”,28,”男”);12

13 for(int i=0;i

17 }18 }

f8316a9061c6513a3fd7eef9f472976e.png

5.数组拷贝

地址的拷贝

int[]array={11,22,33,44};

int[] arrayB=new int[5];

arrayB=array   //两个数组指向同一内存

值的拷贝

int[]array={11,22,33,44};

int[] arrayB=new int[5];

arrayB[0]=array[0];

System 类中的 arraycopy(…)方法:快速,数组大时用次方法。

1 public classTestArrayCopy3 {2 public static voidmain(String[] args) {3 int [] arrA={11,22,33,44};//源数组

4 int [] arrB=new int[5];//目标数组

5

6 System.out.println(“数组拷贝之前”);7 for(intnum:arrB){8 System.out.print(num+”\t”);9 }10 //0 0 0 0 011 //拷贝

12 System.arraycopy(arrA, 0, arrB, 1, 2);13

14 System.out.println(“\n数组拷贝之后”);15 for(intnum:arrB){16 System.out.print(num+”\t”);17 }18 //0 11 22 0 0

19 }20 }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132948.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java程序猿的JavaScript学习笔记(3——this/call/apply)

    Java程序猿的JavaScript学习笔记(3——this/call/apply)

    2022年1月21日
    37
  • elasticsearch

    elasticsearch

    2021年5月28日
    143
  • 移位指令实现乘法

    移位指令实现乘法includeirvine32.inc;.dataidword0;sumqword0;str1byte”请输入16进制的(32位整数)乘数和被乘数”,0str2byte”乘积为:”,0;jdword0;.codemainprocL1:movedx,offsetstr1;callwritestring;movj,0;moveax,0;eax为…

    2022年6月3日
    48
  • 更新日志.txt

    【20210811.1905.3】增加了几处新功能:1.单码登录功能2.账号与用户电脑机械码绑定<url>https://zhuanlan.zhihu.com/p/350520546</url>【20210811.1905.2】优化了几个子程序算法,提高运行速度【20210811.1905.1】1.更新了xxx内容2.修复了几处小bug….

    2022年4月7日
    44
  • 详解银行家算法「建议收藏」

    详解银行家算法「建议收藏」简述:银行家算法是一种可以避免死锁的方法就是以银行借贷系统的分配策略为基础,判断并保证系统的安全运行。我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源就相当于用户向银行家贷款。实现方法:为保证资金的安全,银行家规定:(1)当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;(即当资源池中剩余的可利用资源>=线…

    2022年7月22日
    10
  • 数据库概念设计与逻辑设计[通俗易懂]

    数据库概念设计与逻辑设计[通俗易懂]一、概念设计概念设计的目的就是为了建立概念数据模型,概念数据模型也称为高级数据模型,之所以称为高级数据模型是因为它更接近于人的思维,而不是机器的思维,相比于关系模型更容易理解,此处的高级和低级的概念,与程序语言领域的高低级是一样的。我们通常称Java语言为高级语言,汇编语言为低级语言,是因为高级语言对于我们而言要比汇编语言更容易理解。关于概念数据模型,我们一般都会采用E-R图进行描述。E-R图的规则如下:1.实体采用矩形框,联系采用菱形框,属性采用椭圆形框。2.实体、联系、属性必须使用文字描

    2022年10月9日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号