|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 马太效应 于 2017-7-12 23:28 编辑
今天是第八天了,希望能坚持下去(*Φ皿Φ*)
ps.崩溃了,又一次在写了一个多小时后出错,这告诉我随时随地保存草稿箱的重要性...
数组对象<plus>
- import java.util.Arrays;
- public class ArrayDemo {
- public static void main(String[] args) {
- int[] scores = new int[10];
- for (int score : scores) {
- System.out.printf("%2d", score);// 0 0 0 0 0 0 0 0 0 0
- }
- Arrays.fill(scores, 60);
- for (int score : scores) {
- System.out.printf("%3d", score);//60 60 60 60 60 60 60 60 60 60
- }
- }
- }
复制代码 A. 增强性for循环(for-each循环)<JDK5之后>
语法:for(type element: array)
{
System.out.println(element);
}
说明:先取得array数组第一个元素,指定给type element变量之后执行循环体,接着取得array数组第二个元素,指定给type element变量之后执行循环体。以此类推,直到数组中所有元素访问完为止。
element——要素; [化] 元素; 原理; [电] 电阻丝;
如果需要取出数组元素,使用for-each简单
如果需要取出数组元素的索引,只能使用for循环
B. 若默认值不符合自己的需求,可以使用java.util.Arrays的fill()方法来设定新建数组元素值。(Arrays类)
- public class ArrayDemo2 {
- public static void main(String[] args) {
- int[] arr = new int[] { 1, 2, 3, 4, 20 };
- int arr2[] = new int[] { 1, 3 };
- int[] arr3 = { 4, 5, 6, 7 };
- System.out.println(arr);// [I@15db9742 arr引用于堆空间内存地址区域
- System.out.println(arr.length);// 5
- System.out.println(arr[0]);// 1 (即其索引从0开始)
- int[] arr4 = new int[] { 1, 2, 3, 5, 6 };
- // 取出数组中索引为3的元素
- int ele = arr[3];// 4
- System.out.println(ele);
- // 重新赋值
- arr[3] = 77;
- for (int i = 0; i < arr.length; i++) {
- System.out.println(arr[i]);
- }
- System.out.println("end");
- arr = new int[] { 1, 2, 3, 4, 5 };
- // System.out.println(arr[5]);
- // ArrayIndexOutOfBoundsException
- boolean[] ages = new boolean[100];
- System.out.println(ages[99]);// false
- // 获取数组元素中最大元素
- int[] number7 = { 1, 2, 3, 4, 5, 6 };
- int max = number7[1];// 2
- System.out.println(max);
- for (int i = 0; i < number7.length; i++) {
- if (number7[i] > max) {
- max = number7[i];
- }
- }
- System.out.println(max);// 6
- String[] arr5 = new String[3];
- for (int i = 0; i < arr5.length; i++) {
- System.out.println(arr5[i]);
- }//都为null
- arr5 = null;
- //System.out.println(arr5.length);
- // NullPointerException 空指针异常
- }
- }
复制代码 C. ArrayIndexOutOfBoundsException,超出索引范围
NullPointerException 空指针异常
- public class MoreArrayDemo {
- public static void main(String[] args) {
- int[][] arr1 = new int[6][];// 第二维数组长度未定
- int[][] arr2 = new int[6][6];// 第二维长度确定
- // (!!!)系统为这两个数组分配的堆内存空间是一样的
- int[][] arr3 = new int[5][3];
- // arr2数组中有5个元素,每一个元素其实是一个数组 其中有三个元素
- int[][] arr = { { 1, 2 }, { 3, 4, 5 }, { 6, 7, 8, 9 } };// 静态初始化二维数组
- // 接下来是动态初始化二维数组
- String[][] arrStr;// 声明
- arrStr = new String[3][];// 创建、分配内存
- arrStr[0] = new String[2];// 为高维初始化
- arrStr[1] = new String[3];
- arrStr[2] = new String[4];
- arrStr[0][0] = new String("abc00");// 为低维初始化
- // ...
- int[][] arr4 = new int[][] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 12, 6 } };
- for (int[] xx : arr4) {
- for (int x : xx) {
- System.out.print(x);//12345678126
- }
- }
- }
- }
复制代码
D. 一维数组:数组中的每一个元素都是一个值
二维数组:数组中的数组,每一个元素都是数组
三维数组:每一个元素都是二维数组
对于任何类型的二维数组而言,第一维的大小决定了二维数组对象的大小。
因为二维数组的成员是数组引用,数组引用本身大小是固定的。
- <font size="5">
- //冒泡排序
- public class maopaopaixu {
- public static void main(String[] args) {
-
- int score[] = { 67, 6, 23, 87, 2 };
- for (int i = 0; i < score.length - 1; i++) {
- for (int j = 0; j < score.length - 1; j++) {
- if (score[j] > score[j + 1]) {
- int temp = score[j];
- score[j] = score[j + 1];
- score[j + 1] = temp;
- }
- }
- }
- for (int s = 0; s < score.length; s++) {
- System.out.print(score[s] + " ");
- }
- }
- }</font>
复制代码
E.冒泡排序算法的运作如下:(从后往前)
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
|
评分
-
查看全部评分
|