1.开辟连续的内存空间
2.给数组每个位置的数据初始化,默认值为0
3.数组a保存的是数据的地址值,并不是元素。
4.如果操作数据,需要用下标0开始。数组下标是最大长度减去1。
数组的三种创建方法。
动态创建和静态创建
package cn.qxy.TestCreatArrary;
import com.sun.javaws.IconUtil;
import java.util.Arrays;
public class shuzu {
public static void main(String[] args) {
char[] c1={'h','e','l','l','o'};
char[] c2=new char[]{'h','e','l','l','o'};
char[] c3=new char[5];//创建一个长度为5额数组
c3[0]='h';
c3[1]='e';
c3[2]='l';
c3[3]='l';
c3[4]='0';
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
String[] s={"秦晓燕","是仙女"};
String[] s1=new String[]{"泡泡老师","也是仙女"};
String[] s2=new String[3];
s2[0]="哈哈哈";
s2[1]="我也是";
s2[2]="仙女";
System.out.println(s);
System.out.println(s1);
System.out.println(s2);
System.out.println(Arrays.toString(s));
System.out.println(Arrays.toString(s1));
System.out.println(Arrays.toString(s2));
}
}
hello
hello
hell0
[Ljava.lang.String;@1b6d3586
[Ljava.lang.String;@4554617c
[Ljava.lang.String;@74a14482
[秦晓燕, 是仙女]
[泡泡老师, 也是仙女]
[哈哈哈, 我也是, 仙女]
Arrays.copyOf(数组,新的长度)
把数组赋值成一个指定长度的新数组
新数组的长度 大于 原数组, 相当于复制,并增加位置
新数组的长度 小于 原数组, 相当于截取一部分数据
package cn.qxy.TestCreatArrary;
import sun.plugin.javascript.navig.Array;
import java.util.Arrays;
public class dkoekel {
public static void main(String[] args) {
int[] from={1,2,3,4,5};
int[] to= Arrays.copyOf(from,5);
System.out.println(Arrays.toString(to));
System.out.println(Arrays.toString(from));
int[] to2=Arrays.copyOf(from,10);
System.out.println(Arrays.toString(to2));
int[] s9=Arrays.copyOf(from,3);
System.out.println(Arrays.toString(s9));
}
}
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 0, 0, 0, 0, 0]
[1, 2, 3]
数组的遍历
package cn.qxy;
import java.util.Arrays;
public class ArrayExec {
public static void main(String[] args) {
getMonthDay();
creatArrary();
}
private static void creatArrary() {
//创建数组,动态创建,输出1-10的数
int[] a=new int[10];
for (int i = 0; i <=a.length-1 ; i++) {
a[i]=i+1;
}
System.out.println();
System.out.print(Arrays.toString(a));
}
private static void getMonthDay() {
//1.创建一个数组,用来保存12个月的天数
int[] day={31,28,31,30,31,30,31,31,30,31,30,31};
//2.输出每个月的天数到控制台
for (int i = 0; i <=day.length-1 ; i++) {
System.out.print("第"+(i+1)+"月:"+day[i]+" ");
}
}
}
第1月:31 第2月:28 第3月:31 第4月:30 第5月:31 第6月:30 第7月:31 第8月:31 第9月:30 第10月:31 第11月:30 第12月:31
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
package cn.qxy;
import java.util.Arrays;
import java.util.Random;
public class ArrayExec {
public static void main(String[] args) {
//getMonthDay();
//creatArrary();
creatArrary2();
}
private static void creatArrary2() {
int[] arr=new int[6];
for (int i = 0; i <=arr.length-1 ; i++) {
arr[i]=new Random().nextInt(100);
}
System.out.println(Arrays.toString(arr));
}
private static void creatArrary() {
//创建数组,动态创建,输出1-10的数
int[] a=new int[10];
for (int i = 0; i <=a.length-1 ; i++) {
a[i]=i+1;
}
System.out.println();
System.out.print(Arrays.toString(a));
}
private static void getMonthDay() {
//1.创建一个数组,用来保存12个月的天数
int[] day={31,28,31,30,31,30,31,31,30,31,30,31};
//2.输出每个月的天数到控制台
for (int i = 0; i <=day.length-1 ; i++) {
System.out.print("第"+(i+1)+"月:"+day[i]+" ");
}
}
}
[64, 65, 44, 83, 42, 0]
package cn.qxy.TestCreatArrary;
import java.util.Arrays;
public class maopao {
public static void main(String[] args) {
int[] a={1,20,45,6,5};
sormaopao(a);
}
private static void sormaopao(int[] a) {
int temp = 0;
for (int i =1; i <=a.length-1 ; i++) {
for (int j =0; j<=a.length-1-1 ; j++) {
//j代表下标,j.length-1,是最后一个数的下标,最后一个数不需要参与比较
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
System.out.println("第"+i+"轮"+Arrays.toString(a));
}
System.out.println(Arrays.toString(a));
}
}
第1轮[1, 20, 6, 5, 45]
第2轮[1, 6, 5, 20, 45]
第3轮[1, 5, 6, 20, 45]
第4轮[1, 5, 6, 20, 45]
[1, 5, 6, 20, 45]



