------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
Java数组
一维数组:可以理解为一列多行、类型相同的数据,其中每个数据被称为数组元素;
一维数组的声明方式:
type varName[]; 或 type[] varName;(推荐)
如:
int age[]; int []age;
数组的长度一旦确定,就不能改变,也就数组是定长的;
总结:java语言声明数组的时候不能指定其长度(元素的个数)
如:int a[5]; //非法
初始化:
Java中的数组必先初始化才可以使用,所谓初始化就是为数组的数组元素分配内存,并为每个数组元素赋值;
数组初始化的两种方式:
静态初始化:初始化时由我们自己指定每个数组元素的初始值,由系统决定需要的数组长度;
格式:数组名 = new 数组类型[]{元素1,元素2,元素3...元素n};
简化语法:数组名 = {元素1,元素2,元素3...元素n};
动态初始化:初始化时由我们指定数组的长度,由系统为数组元素分配初始值;
格式:数组名 = new 数组类型[数组长度];
总结:
不能静态和动态初始化同时使用:
也就是说不能同时指定数组的长度和元素;
如:
public class test {
public static void main(String[] args) {
int []age = new int[10];
//动态初始化
for (int i = 0; i < age.length; i++) {
age[i] = i;
System.out.print(age[i]+" ");
}
}
}
数组的使用:
Java语言的数组索引是从0开始的,也就是说数组里的第一个元素的索引是0,第二个元素的索引是1,依次可以类推。
常见操作:
给数组元素赋值
数组名[索引] = 数组类型的值 ;
访问数组元素
数组类型 变量 = 数组名[索引];
得到数组的长度
int len = 数组名.length; //length是数组的属性
遍历数组(备注:length属性和循环语句)
数组元素的索引范围(0,长度—1)
如:求数组的最大值
public class test {
public static void main(String[] args) {
int arr[] = new int[] {1,45,23,67,89,100 };
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
}
}
System.out.println(max);
}
}
输出:100
如:冒泡排序:
public class test {
public static void main(String[] args) {
int []age = {1,3,33,23,4,764,78,43};
for (int i = 0; i < age.length; i++) {
for (int j = i+1; j <= age.length-1; j++) {
if(age[i] > age[j]){
int temp = age[i];
age[i] = age[j];
age[j] = temp;
}
}
}
System.out.println(Arrays.toString(age));
}
}
输出:[1, 3, 4, 23, 33, 43, 78, 764]
二维数组:
二维数组:(其实是一个一维数组,它的每一个元素又是一个一维数组),
可以看做是一张表格。
初始化:
动态初始化:
int[ ][ ] arr = new int[3][2];
定义了一个二维数组,其中有3个一维数组,每一个一维数组中有2个元素
静态初始化:
int[ ][ ] arr = new int[][]{{1,2},{3,4},{5,6}};
int[ ][ ] arr = {{1,2},{3,4},{5,6}};
Arrays工具类:
此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。
如:public class test {
public static void main(String[] args) {
int []arr = {1,3,33,23,4,764,78,43};
System.out.println(Arrays.toString(arr));//打印数组
Arrays.sort(arr);//排序数组
System.out.println(Arrays.toString(arr));
}
}
[1, 3, 4, 23, 33, 43, 78, 764]
Java5新特性对数组的支持:
增强for循环 → for-each
for (参数类型参数名 : 数组名) {
代码块
}
如:
public class test {
public static void main(String[] args) {
int []arr={1,2,3,23,47,656,45};
for (int i : arr) {
System.out.print(i+",");
}
}
}
输出:1,2,3,23,47,656,45,
这样就用for-each把数组遍历输出!
我的总结: for-each用于数组和Iterable对象!在以后的集合学习中还会经常用到 for-each。