java 数列_java中的数组

数组是相同类型数据的有序结合。数组描述的是相同类型的若干类型,按照一定的先后顺序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问他其元素。

数组的三个基本特点:

1.长度确定,一旦被创建,大小不可改变。

2.其元素必须是相同类型,不允许出现混合类型。

3.数组类型可以是任何类型,包括基本类型和引用类型。

数组变量属于引用类型,数组也是对象,数组中的每个元素相当于对象的成员变量。

若声明了一个长度为10的int类型的数组,内存动态如下:

ca0797ed5386b9579ee9e020eb9a21c4.png

public classTestArray {public static voidmain(String[] args) {//TODO Auto-generated method stub

int[] arr01=new int[10]; //创建一个长度为10(length)的int类型的数组,索引下标0~9

String arr02[]=null; //数组的声明方式

/*逐赋值法*/

arr01[0]=13;

arr01[1]=16;

arr01[2]=18;*/

//arr01[12]=19;//若超越索引下标,编译正确,运行会报错,数组越界ArrayIndexOutOfBoundsException:12

/*循环初始化数组并读取元素值*/

for(int i=0;i

arr01[i]=10+i;

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

}

User2[] arr03=new User2[3];

arr03[0]=new User2(1706,"aa");

arr03[1]=new User2(1707,"ab");

arr03[2]=new User2(1708,"ac");for(int i=0;i

System.out.println(arr03[i].getName());

}

}

}classUser2{private intid;privateString name;/*构造方法*/

public User2(intid, String name) {super();this.id =id;this.name =name;

}/*写get、set方法*/

public intgetId() {returnid;

}public void setId(intid) {this.id =id;

}publicString getName() {returnname;

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

}

}

5cf69687439cb133da19c0c03071c9dc.png

12180eb112c373a770cfea76bcdd40d5.png

数组的初始化方式有3种:静态初始化、动态初始化、默认初始化

foreach循环:用于读取数组元素的值,不能修改元素的值

e160c316eed861565d1d8a7d0d3b7a2f.png

数组的复制、删除及扩容

public classTestArrayCopy {public static voidmain(String[] args) {//TODO Auto-generated method stub

testBasicCopy2();

String s1[]={"aa","bb","cc","dd","ee"};

String s2[]=new String[10];

String str[]={"阿里","腾讯","美团","百度","BAT","去哪儿"};

removeElement(str,2);

extendRange(s1);

System.arraycopy(s1,2, s2, 6, 3);//将s1数组从第2个位置开始拷到s2的第6个位置

/*Object src, int srcPos, Object dest, int destPos, int length)

从SRC数组拷贝到dest数组;srcPos数组开始拷贝的位置.destPos目标数组位置;length代表长度*/

for(int i=0;i

System.out.println(i+":"+s2[i]);

}

}//测试从数组中删除某个元素cc(本质上还是数组的拷贝)

public static voidtestBasicCopy2(){

String s1[]={"aa","bb","cc","dd","ee"};//String s2[]=new String[5];

System.arraycopy(s1,3, s1, 3-1, 2);

s1[s1.length-1]=null;for(int i=0;i

System.out.println(i+":"+s1[i]);

}

}//删除数组中指定索引位置的元素,并将原数组返回

public static String[] removeElement(String s[],intindex){

System.arraycopy(s, index+1, s, index, s.length-index-1);

s[s.length-1]=null;for(int i=0;i

System.out.println(i+":"+s[i]);

}returns;

}//数组的扩容(本质上是先定义一个更大的数组,然后将原数组内容原封不动地拷贝到新数组)

public staticString[] extendRange(String[] s1){

String ss2[]=new String[s1.length+3];

System.arraycopy(s1,0, ss2, 0, s1.length);for(String j:ss2){

System.out.println(j);

}returnss2;

}

}

数组复制的参数解释:

91578001873664a894d0cc31fdf01e7f.png

770c330c1d1ed987168eeff38621bd39.png

Array类:JDK提供的java.util.Arrays类,包含了常用的数组操作,方便我们日常开发。包含了:排序、查找、填充、打印等操作。

打印:

a39c2595e4113d7ad4d4bdafeb60ed44.png

排序:

5984ad36d2a265a33dc0e24d5bb88e45.png

查找:

aede198f800208e63b189c42a81f4290.png

多维数组:可以看成以数组为元素的数组,经常使用二维数组,学习容器后,一般使用容器,二维数组用的很少。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值