标签:设置 sde false des public char case 个数 table
数组是由同一类型的对象或者基本数据类型组成,并封装在同一个标识符(数组名称)下的一种数据结构。在Java中,数组是一种引用数据类型,可以看做对象,需要进行初始化,也可以直接赋值给Object对象,调用Object中的所有方法。每个数组中都有一个由public final修饰的成员变量--length,即数组中含有元素的个数,该变量的值必须为0或正整数。
数组的创建总共有数组的声明、数组的构建、数组的初始化三步,最后才能使用数组。
声明数组时可以不指明数组元素的个数,也可以不为数组元素分配内存空间,只要指定数组元素的数据类型和数组名即可,此时是一个空引用。如:
//数组声明有两种形式 //第一种:Type[] arrayName; int[] intArray; String[] stringArray //第二种:Type arrayName[]; int intArray[]; String stringArray[];
用关键字new构成数组的创建表达式,表示在创建时动态分配内存空间。此时可以指定数组类型和数组元素的个数,元素个数既可以是常量也可以是变量。基本类型数组的每个元素都是一个基本类型的变量,引用类型数组的每个元素都是元素的引用。如:
//数组创建的基本格式位:arrayName = new Type[componets number]; int[] ai; ai = new int[10]; String[] s; s= new String[3] //可以将数组的声明与创建一并执行 int ai[] = new int[10]; //同时创建多个数组 String[] s1 = new String[3], s2 = new String[8];
若不初始化数组,数值型数组会自动初始化为0,字符型数组会自动初始化为null,布尔型数组会初始化为false,引用型数组会自动初始化为空引用null。
声明数组名时,给出了数组的初始值,程序变回利用数组初始值创建数组并对它的各个元素进行初始化,如:
int a[] = {22,33,44,55};
若创建数组时没有指定初始值,数组便会被赋予默认的初始值。
数组的引用可以通过数组名加下标来对数组的元素进行访问,即arrayName[index]。其中数组下标必须为byte,int,short或者char,从0开始计数,下标值的最大值为length-1,如果超过最大值,将会产生数组越界异常。
数组名是一个引用:
public class Arrays{ public static void main(String[] args){ int[] a1 = {1,2,3,4,5}; int[] a2; a2 = a1; for(int i = 0;i < a2.length; i++){ a2[i]++; } for(int i=0;i < a1.length; i++){ System.out.println("a1[" + i + "]" + a1[i]); } } } //数组a1和数组a2指向同一个引用,当数组a2中的元素加1时,数组a1中的元素便也加1了。 //输出结果 a1[0] = 2 a1[1] = 3 a1[2] = 4 a1[3] = 5 a1[4] = 6
对于字符串构成的数组,每个字符串都是一个引用。如:
public class ArrayOfStringsDemo{ public static void main(String[] args){ String[] anArray={"String One","String Two","String Three"}; for(int i = 0;i < anArray.length; i++){ System.out.println(anArray[i].toLowerCase()); } } } //运行结果 string one string two string three
复制数组用的方法是arraycopy,其格式为
public static void arraycopy(Object source, int srcIndex, Object dest,int destIndex,int length)
例;
public class ArrayCopyDemo{ public static void main(String[] args){ char[] copyFrom = {‘d‘,‘e‘,‘c‘,‘a‘,‘f‘, ‘f‘,‘e‘,‘i‘,‘n‘,‘a‘,‘t‘,‘e‘,‘d‘}; char[] copyTo = new char[7]; System.arraycopy(copyFrom,2,copyTo,0,7); System.out.println(new String(copyTo)); } } //输出结果 caffina
二维数组是数组的数组,其创建方法与一维数组原理相同。如:
//方法一:只声明不初始化 int[][] gradeTable;//gradeTable 是一个指向2维整数数组的引用,其初始值为null //方法二:声明并初始化 int[][] myArray = new int[3][5];//定义引用时,同时构造数组并初始化引用,初始值为0,设置二维数组大小时,前者必须是不为空的正整数 //方法三:定义引用、构造数组,初始化数组元素 int[][] myArray = {{8,1,2,2,9},{1,9,4,0,3},{0,3,0,0,7}};
二维数组的长度及每行的长度
class UnevenExample3{ public static void main(String[] args){ //声明构造一个二维数组 int[][] uneven = {{1,9,4},{0,2},{0,1,2,3,4}}; //数组的长度(行数) System.out.println("Length of array is :" + uneven.length); //数组每一行的长度(列数) System.out.println("Length of row[0] is :" + uneven[0].length); System.out.println("Length of row[1] is :" + uneven[1].length); System.out.println("Length of row[2] is :" + uneven[2].length); } } //运行结果 Length of array is : 3 Length of row[0] is : 3 Length of row[1] is : 2 Length of row[2] is : 5
标签:设置 sde false des public char case 个数 table
原文地址:https://www.cnblogs.com/thwyc/p/12233362.html