Java学习笔记_05
2017-04-10 18:09
495 查看
一、二维数组
二维数组就是一个元素为一位数组。
初始化方式之一(指定有多少个长度相同的一位数组):
数据类型[][] 变量名 = new 数据类型[m]
;
m表示这个二维数组有多少个一位数组
n表示每一个一维数组中的元素个数
静态初始化:
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
简化格式:
数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
例子: 公司年销售额求和
某公司按照季度和月份统计的数据如下:单位(万元)
第一季度:22,66,44
第二季度:77,33,88
第三季度:25,45,65
第四季度:11,66,99
结论:
如果形式参数是基本类型:
形式参数的改变,不影响实际参数。
如果形式参数是引用类型:
形式参数的该变,直接影响实际参数。
三、数组的高级操作
冒泡排序
基本概念:相邻的两个元素进行比较,小的放前面,大的放后面。
从0索引开始,依次和后面的每一个元素进行比较
第一次比较完毕,最小值出现在了最小索引处
第二次比较完毕,次小值出现在了次小索引处
...
完毕后,就排序了。
成员方法:
public static String toString(int[] a):把数组转成字符串
public static void sort(int[] a):对数组进行排序(有重载)
public static void main(String[] args) {
//public static String toString(int[] a):把数组转成字符串
int[] arr = {1,2,4,5,5};
//打印上面数组的字符串表示形式
String arrStr = Arrays.toString(arr);
System.out.println(arrStr);
System.out.println("----------");
char[] chs = {'a','d','f','g'};
String chsStr = Arrays.toString(chs);
System.out.println(chsStr);
}
二维数组就是一个元素为一位数组。
初始化方式之一(指定有多少个长度相同的一位数组):
数据类型[][] 变量名 = new 数据类型[m]
;
m表示这个二维数组有多少个一位数组
n表示每一个一维数组中的元素个数
public static void main(String[] args) { //定义一个三个长度不意义样的一位数组的二维数组,并遍历 int[][] arr = {{1,2},{3,4,5},{6,7,8,9,0}}; //利用for循环遍历二维数组 for (int i = 0; i < arr.length; i++) { //拿到每一个一维数组之后,遍历一位数组中的每一个元素 for (int j = 0; j < arr[i].length; j++) { System.out.print(arr[i][j]+" "); } System.out.println(); } } }二维数组的静态初始化:
静态初始化:
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
简化格式:
数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
例子: 公司年销售额求和
某公司按照季度和月份统计的数据如下:单位(万元)
第一季度:22,66,44
第二季度:77,33,88
第三季度:25,45,65
第四季度:11,66,99
public static void main(String[] args) { //创建对应的二维数组 int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}}; //遍历二维数组并将每一个元素的值加起来 int sum = 0; for (int i = 0; i < arr.length; i++) { //拿到每一个一维数组之后,遍历每一个一维数组,加起来 for (int j = 0; j < arr[i].length; j++) { sum+=arr[i][j]; } } System.out.println(sum); } }二、形式参数问题
public static void main(String[] args){ int a = 10; int b = 20; System.out.println("a:"+a+",b:"+b); //10,20 change(a,b); System.out.println("a:"+a+",b:"+b); //? int[] arr = {1,2,3,4,5}; change(arr); System.out.println(arr[1]); //4 } public static void change(int a,int b) { System.out.println("a:"+a+",b:"+b); //10,20 a = b; b = a + b; System.out.println("a:"+a+",b:"+b);/20,40 } public static void change(int[] arr) { for(int x=0; x<arr.length; x++) { //如果数组的元素值是偶数,就变为以前的2倍。 if(arr[x]%2==0) { arr[x]*=2; } } } }
结论:
如果形式参数是基本类型:
形式参数的改变,不影响实际参数。
如果形式参数是引用类型:
形式参数的该变,直接影响实际参数。
三、数组的高级操作
冒泡排序
基本概念:相邻的两个元素进行比较,小的放前面,大的放后面。
public static void main(String[] args) { int[] arr = { 24, 69, 80, 57, 13 }; System.out.println("--------------------"); //使用for循环改进上面的代码 for (int j = 0; j < arr.length-1; j++) {//外层循环控制比较的次数 for (int i = 0; i < arr.length - 1 - j ; i++) { //-1是为了防止数组越界,-j是为了提高比较的效率 if (arr[i]>arr[i+1]) { //找一个中间变量 int temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; } } } printArr(arr); } //写一个方法打印数组 public static void printArr(int[] arr){ for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } System.out.println(); }选择排序
从0索引开始,依次和后面的每一个元素进行比较
第一次比较完毕,最小值出现在了最小索引处
第二次比较完毕,次小值出现在了次小索引处
...
完毕后,就排序了。
public static void main(String[] args) { int[] arr = { 24, 69, 80, 57, 13 }; for (int j = 0; j < arr.length-1; j++) { for (int i = j+1; i < arr.length; i++) { if (arr[j]>arr[i]) { int temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } } } printArr(arr); } //写一个方法打印数组 public static void printArr(int[] arr){ for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } System.out.println(); } }Arrays数组工具类
成员方法:
public static String toString(int[] a):把数组转成字符串
public static void sort(int[] a):对数组进行排序(有重载)
public static void main(String[] args) {
//public static String toString(int[] a):把数组转成字符串
int[] arr = {1,2,4,5,5};
//打印上面数组的字符串表示形式
String arrStr = Arrays.toString(arr);
System.out.println(arrStr);
System.out.println("----------");
char[] chs = {'a','d','f','g'};
String chsStr = Arrays.toString(chs);
System.out.println(chsStr);
}
相关文章推荐
- java学习笔记05--字符串 .
- Java学习笔记 - 05
- Java学习笔记05——JSP
- Java学习笔记05
- Java 学习笔记 05 HashMap 和 Hashtable 区别与联系
- java学习笔记05--字符串 .
- 【Java学习笔记】05.数组、方法和方法重载
- Java学习笔记 05
- Java学习笔记05
- 黑马程序员——学习笔记05.java面向对象
- Java学习笔记05 多线程
- Java学习笔记05--字符串
- Java学习笔记整理05
- JAVA学习笔记——面向对象05
- java个人学习笔记05(进制装换+排序查找+二维数组)
- java学习笔记05--字符串 .
- java学习笔记05--字符串 .
- JAVA学习笔记-05
- Java 学习笔记05:Spring 基于注解(Annotation)的IOC