黑马程序员_java数组学习笔记
2015-01-06 15:47
351 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
数组是有序数据的集合,数组中的每个元素具有相同的数组名和下标来唯一地确定数组中的元素。
一维数组:
一维数组:可以理解为一列多行、类型相同的数据,其中每个数据被称为数组元素;
一维数组的声明方式:
type varName[]; 或 type[] varName;(推荐)
如:
int age[]; int []age;
数组的长度一旦确定,就不能改变,也就数组是定长的;
总结:java语言声明数组的时候不能指定其长度(元素的个数)
如:int a[5]; //非法
初始化:
Java中的数组必先初始化才可以使用,所谓初始化就是为数组的数组元素分配内存,并为每个数组元素赋值;
数组初始化的两种方式:
静态初始化:初始化时由我们自己指定每个数组元素的初始值,由系统决定需要的数组长度;
格式:数组名 = new 数组类型[]{元素1,元素2,元素3...元素n};
简化语法:数组名 = {元素1,元素2,元素3...元素n};
动态初始化:初始化时由我们指定数组的长度,由系统为数组元素分配初始值;
格式:数组名 = new 数组类型[数组长度];
总结:
不能静态和动态初始化同时使用:
也就是说不能同时指定数组的长度和元素;
如:
输出:0 1 2 3 4 5 6 7 8 9
常见操作:
给数组元素赋值
数组名[索引] = 数组类型的值 ;
访问数组元素
数组类型 变量 = 数组名[索引];
得到数组的长度
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
如:冒泡排序:
输出:[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}};
如:
输出:
[1, 3, 33, 23, 4, 764, 78, 43]
[1, 3, 4, 23, 33, 43, 78, 764]
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。
Java数组
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]+" "); } } }
输出:0 1 2 3 4 5 6 7 8 9
数组的使用:
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, 33, 23, 4, 764, 78, 43]
[1, 3, 4, 23, 33, 43, 78, 764]
Java5新特性对数组的支持:
增强for循环 → for-eachfor (参数类型参数名 : 数组名) {
代码块
}
如:
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。
相关文章推荐
- 黑马程序员_java基础学习笔记03_函数以及数组知识
- 黑马程序员 Java基础学习笔记3 循环和数组
- 黑马程序员--Java基础学习笔记【数组操作、基本数据类型包装类】
- 黑马程序员----java学习笔记之数组知识点
- 【黑马程序员】 学习笔记 - Java数组及排序算法
- 黑马程序员——java学习笔记--数组
- 黑马程序员 java学习笔记——数组
- 黑马程序员--学习笔记-- Java中常见的数组排序方式(一)
- 黑马程序员--Java基础学习笔记【重载、数组操作】
- 【黑马程序员】Java学习笔记之函数与数组
- 黑马程序员java学习笔记——数组
- 黑马程序员——Java学习笔记——数组的排序和查找
- 黑马程序员——JAVA学习笔记——数组
- 黑马程序员——学习笔记04.java数组
- 黑马程序员------java学习笔记之数组基础
- 黑马程序员---- Java学习笔记:1.异常 2.集合
- 黑马程序员java学习笔记之二(java中的多态性)
- 黑马程序员 java学习笔记3-IO流之字节流与装饰设计模式
- 黑马程序员 java学习笔记4-Io流学习后可能会用到的实例
- 黑马程序员java学习笔记之四(java多线程总结)