QQ登录

只需一步,快速开始

搜索
【活动】边做笔记边学习,还能赢取奖学金!
查看: 99|回复: 2

[学习笔记] Java暑期学习Day08(数组)

[复制链接]
累计签到:9 天
连续签到:2 天
最佳答案
2 
发表于 2017-7-12 23:28:19 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 马太效应 于 2017-7-12 23:28 编辑

今天是第八天了,希望能坚持下去(*Φ皿Φ*)
ps.崩溃了,又一次在写了一个多小时后出错,这告诉我随时随地保存草稿箱的重要性...

数组对象<plus>

  1. import java.util.Arrays;

  2. public class ArrayDemo {
  3.         public static void main(String[] args) {

  4.                 int[] scores = new int[10];

  5.                 for (int score : scores) {
  6.                         System.out.printf("%2d", score);// 0 0 0 0 0 0 0 0 0 0
  7.                 }
  8.                 Arrays.fill(scores, 60);
  9.                 for (int score : scores) {
  10.                         System.out.printf("%3d", score);//60 60 60 60 60 60 60 60 60 60
  11.                 }

  12.         }

  13. }
复制代码
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类)
  1. public class ArrayDemo2 {
  2.         public static void main(String[] args) {

  3.                 int[] arr = new int[] { 1, 2, 3, 4, 20 };
  4.                 int arr2[] = new int[] { 1, 3 };
  5.                 int[] arr3 = { 4, 5, 6, 7 };
  6.                 System.out.println(arr);// [I@15db9742 arr引用于堆空间内存地址区域
  7.                 System.out.println(arr.length);// 5
  8.                 System.out.println(arr[0]);// 1 (即其索引从0开始)

  9.                 int[] arr4 = new int[] { 1, 2, 3, 5, 6 };
  10.                 // 取出数组中索引为3的元素

  11.                 int ele = arr[3];// 4
  12.                 System.out.println(ele);
  13.                 // 重新赋值
  14.                 arr[3] = 77;

  15.                 for (int i = 0; i < arr.length; i++) {
  16.                         System.out.println(arr[i]);
  17.                 }
  18.                 System.out.println("end");

  19.                 arr = new int[] { 1, 2, 3, 4, 5 };
  20.                 // System.out.println(arr[5]);
  21. // ArrayIndexOutOfBoundsException

  22. boolean[] ages = new boolean[100];
  23.                 System.out.println(ages[99]);// false

  24.                 // 获取数组元素中最大元素
  25.                 int[] number7 = { 1, 2, 3, 4, 5, 6 };
  26.                 int max = number7[1];// 2
  27.                 System.out.println(max);
  28.                 for (int i = 0; i < number7.length; i++) {
  29.                         if (number7[i] > max) {
  30.                                 max = number7[i];
  31.                         }
  32.                 }
  33.                 System.out.println(max);// 6
  34.                 String[] arr5 = new String[3];
  35.                 for (int i = 0; i < arr5.length; i++) {
  36.                         System.out.println(arr5[i]);
  37.                 }//都为null
  38.                 arr5 = null;
  39.                  //System.out.println(arr5.length);
  40.                 // NullPointerException 空指针异常
  41.         }
  42. }
复制代码
C. ArrayIndexOutOfBoundsException,超出索引范围
         NullPointerException 空指针异常


  1. public class MoreArrayDemo {

  2.         public static void main(String[] args) {

  3.                 int[][] arr1 = new int[6][];// 第二维数组长度未定
  4.                 int[][] arr2 = new int[6][6];// 第二维长度确定

  5.                 // (!!!)系统为这两个数组分配的堆内存空间是一样的

  6.                 int[][] arr3 = new int[5][3];
  7.                 // arr2数组中有5个元素,每一个元素其实是一个数组 其中有三个元素

  8.                 int[][] arr = { { 1, 2 }, { 3, 4, 5 }, { 6, 7, 8, 9 } };// 静态初始化二维数组

  9.                 // 接下来是动态初始化二维数组
  10.                 String[][] arrStr;// 声明
  11.                 arrStr = new String[3][];// 创建、分配内存
  12.                 arrStr[0] = new String[2];// 为高维初始化
  13.                 arrStr[1] = new String[3];
  14.                 arrStr[2] = new String[4];
  15.                 arrStr[0][0] = new String("abc00");// 为低维初始化
  16.                 // ...
  17.                 int[][] arr4 = new int[][] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 12, 6 } };

  18.                 for (int[] xx : arr4) {
  19.                         for (int x : xx) {
  20.                                 System.out.print(x);//12345678126
  21.                         }
  22.                 }

  23.         }

  24. }
复制代码


D.   一维数组:数组中的每一个元素都是一个值
      二维数组:数组中的数组,每一个元素都是数组
      三维数组:每一个元素都是二维数组

对于任何类型的二维数组而言,第一维的大小决定了二维数组对象的大小。
因为二维数组的成员是数组引用,数组引用本身大小是固定的。
  1. <font size="5">
  2. //冒泡排序

  3. public class maopaopaixu {

  4.         public static void main(String[] args) {
  5.                
  6.                 int score[] = { 67, 6, 23, 87, 2 };
  7.                 for (int i = 0; i < score.length - 1; i++) {
  8.                         for (int j = 0; j < score.length - 1; j++) {
  9.                                 if (score[j] > score[j + 1]) {
  10.                                         int temp = score[j];
  11.                                         score[j] = score[j + 1];
  12.                                         score[j + 1] = temp;
  13.                                 }
  14.                         }
  15.                 }

  16.                 for (int s = 0; s < score.length; s++) {
  17.                         System.out.print(score[s] + " ");
  18.                 }

  19.         }

  20. }</font>
复制代码

E.冒泡排序算法的运作如下:(从后往前)
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较











评分

参与人数 1荣誉 +4 鱼币 +4 收起 理由
小甲鱼 + 4 + 4 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:1 天
连续签到:1 天
最佳答案
0 
发表于 6 天前 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:9 天
连续签到:2 天
最佳答案
2 
 楼主| 发表于 6 天前 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-7-22 10:42 Powered by Discuz! X2.5 Theme by dreambred

快速回复 返回顶部 返回列表