目 录
(一)数组
(一)概念
用于存储多个相同类型数据的集合,数组(Array),标志是[ ]。
(二)数组的创建
数组的创建方式一般分为动态初始化和静态初始化。
①动态初始化
int[] a=new int[5];
②静态初始化
int[] b=new int[]{1,2,3};
int[] c={1,2,3};
③创建步骤
1、在内存中开辟了连续的空间,用来存放数据,长度为n(整型数据)。
2、给数组完成初始化过程,给每个元素赋予默认值。
3、数组在完成初始化后分配一个唯一的地址值。
4、再将唯一的地址值交给引用类型的变量去保存。
注:数组名是个引用类型的变量,保存的是数组的地址,而非数组中的数据。
(三)数组的长度
数组的长度用length属性来表示,一旦创建,长度就不可改变,允许数组为0,。
获取数组的(某个)元素值,是通过数组下标来获取,下标从01开始,在length-1处结束。
(四)数组入门代码测试
package cn.tedu.basic;
import java.util.Arrays;
public class TestCreateArray {
public static void main(String[] args) {
char[] c2 = new char[] {'h','e','l','l','o'};
char[] c3 = new char[5];
c3[0] = 'h';
c3[1] = 'e';
c3[2] = 'l';
c3[3] = 'l';
c3[4] = 'o';
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
String[] s = {"a","b","c"};
System.out.println(s);
System.out.println(Arrays.toString(s));
System.out.println(c2.length);
System.out.println(s.length);
}
}
(五)数组的遍历
从头到尾,依次获取数组里的每一个元素,打印输出或排序。
格式:
for(int i=0;i<=Array.length-1;i++){
循环体
}
(六)遍历测试
package cn.tedu.exercise;
import java.util.Arrays;
public class Inner{
public static void main(String[] args) {
int[] a=new int[10];
for(int i=0;i<a.length-1;i++){
a[i]=i+1;
}
System.out.println(a);
System.out.println(Arrays.toString(a));
}
}
(二)数组工具类Arrays
(一)Arrays.toString(数组名)
将数组里的数据以逗号相隔的方式输出字符串。
(二)Arrays.sort(数组名)
对数组进行排序,基本类型的数组使用的是优化后的快速排序,对于引用类型数组使用的的是优化后的合并排序算法。
(三)Arrays.copyOf(数组名,新长度)
把当前数组赋值给一个指定了新的长度的新数组。
若是新的数组长度是大于原数组,相当于复制,增添了位置;
若是新的数组长度是小于原数组,相当于截取,删除了位置。
(四)数组工具类Arrays测试
package cn.tedu.exercise;
import java.util.Arrays;
public class Inner{
public static void main(String[] args) {
int[] a={2,5,1,7,9,6,5};
int[] b=Arrays.copyOf(a,5);
System.out.println("长度变小,截取:"+Arrays.toString(b));
int[] c=Arrays.copyOf(a,10);
System.out.println("长度变大,复制:"+Arrays.toString(c));
Arrays.sort(a);
System.out.println("排序后的数组:"+Arrays.toString(a));
}
}
(三)二维数组(扩展)
(一)概念
存放数组的数组,数组里存放的数据还是数组。
(二)二维数组的创建格式:
int[][] a={{3,5},{8,4},{2,5}};
外部数组长度:3
内部数组长度:2
需给每个内部数组初始化,二维数组有唯一的地址值,并会把地址值交给引用类型变量a来保存。
(三)二维数组的遍历
外层for循环加内层for循环:
for(int i=0;i<=d.length-1;i++){
for (int j=0;j<d[i].length-1;j++)
{
}
}
(四)二维数组代码测试
package cn.tedu.exercise;
import java.util.Arrays;
public class Inner{
public static void main(String[] args) {
int[][] d={{3,5},{8,4},{2,5}};
for(int i=0;i<=d.length-1;i++){
for (int j=0;j<=d[i].length-1;j++)
{
System.out.println(d[i][j]);
}
}
}
}