黑马程序员-有关数组的总结

---------------------- android开发java培训、期待与您交流! ----------------------

黑马程序员-有关数组的总结

数组时具有相同数据类型的一组数据的集合。在程序设计中,可以将这些集合成为数组。数组中的每个元素具有相同的数据类型。在java中同样将数组看成一个对象,虽然基本数据类型不是对象,但由基本数据类型组成的数组却是对象。在程序中引入数组可以更有效的管理和处理数据。可以根据数组的位数将数组分为一维数组、二维数组等。

一维数组实质上是一组相同数据类型数据的现形集合,当在程序中处理一组数据时,或者传递一组数据时,可以使用这种数据类型。

  数组作为对象允许使用new关键字进行内存分配。在使用数组之前,必须首先定义数组变量所属的类型,一维数组有两种创建形式:

数组元素类型  数组名字[];例如:String  str[]

数组元素类型[]  数组名字;例如:int[]   in

数组元素的类型决定了数组的数据类型。它可以是Java中任意的数据类型,包括简单的数据类型和数组类型。数组名字为一个合法的标示符,符号“[]”指明了该变量是一个数组类型变量。单个“[]”表示要创建的数组是一个一维数组。

声明数组后,还不能立即访问他的任何元素,因为声明数组只是给出了数组名字和元素的数据类型,要想真正使用数组,好要为他分配内存空间。在为数组分配内存空间时必须指明数组的长度。

二维数组看成是特殊的一位数组,同一维数组一样,二维数组在声明是也没有分配内存空间,同样使用new关键字来分配内存,然后才能访问每个元素。

以下是笔记中的几个部分:

(1)----------------------------------------------------------------------------------------------------

/*

直接选择排序算法实例

*/

public class SelectSort {

       public static void main(String[] args) {

              // 创建一个数组,这个数组元素是乱序的

              int[] array = { 63, 4, 24, 1, 3, 15 };

              // 创建直接排序类的对象

              SelectSort sorter = new SelectSort();

              // 调用排序对象的方法将数组排序

              sorter.sort(array);

       }

(2)---------------------------------------------------------------------------------------------------

 

       /*

        直接选择排序法

       */

       public void sort(int[] array) {

              int index;

              for (int i = 1; i < array.length; i++) {

                     index = 0;

                     for (int j = 1; j <= array.length - i; j++) {

                            if (array[j] > array[index]) {

                                   index = j;

                            }

                     }

                     // 交换在位置array.length-iindex(最大值)两个数

                     int temp = array[array.length - i];// 把第一个元素值保持到临时变量中

                     array[array.length - i] = array[index];// 把第二个元素值保存到第一个元素单元中

                     array[index] = temp;// 把临时变量也就是第一个元素原值保持到第二个元素中

              }

              showArray(array);// 输出直接选择排序后的数组值

       }

      

/*

        显示数组所有元素

*/

       public void showArray(int[] array) {

              for (int i : array) {// foreach格式遍历数组

                     System.out.print(" >" + i);// 输出每个数组元素值

              }

              System.out.println();

       }

}

(3)---------------------------------------------------------------------------------------------------

public class Matrix { // 创建类

       public static void main(String[] args) { // 主方法

              int a[][] = new int[3][4]; // 定义二维数组

              for (int i = 0; i < a.length; i++) {

                     for (int j = 0; j < a[i].length; j++) { // 循环遍历数组中的每个元素

                            System.out.print(a[i][j]); // 将数组中的元素输出

                     }

                     System.out.println(); // 输出空格

              }

       }

}

(4)---------------------------------------------------------------------------------------------------

public class Tautog { // 创建类

       public static void main(String[] args) { // 主方法

              int arr2[][] = { { 4, 3 }, { 1, 2 } }; // 定义二维数组

              System.out.println("数组中的元素是:"); // 提示信息

              for (int x[] : arr2) { // 外层循环变量为一维数组

                     for (int e : x) { // 循环遍历每一个数组元素

                            if (e == x.length) { // 判断变量是二维数组中的最后一个元素

                                   System.out.print(e); // 输出二维数组的最后一个元素

                            } else

                                   // 如果不是二维数组中的最后一个元素

                                   System.out.print(e + ""); // 输出信息

                     }

              }

       }

}

(5)--------------------------------------------------------------------------------------------------

import java.util.*;

public class Swap { // 创建类

       public static void main(String[] args) { // 主方法

              int arr[] = new int[5]; // 创建int型数组

              Arrays.fill(arr, 8); // 使用同一个值对数组进行填充

              for (int i = 0; i < arr.length; i++) { // 循环遍历数组中的元素

                     // 将数组中的元素依次输出

                     System.out.println("" + i + "个元素是:" + arr[i]);

              }

       }

}

(6)---------------------------------------------------------------------------------------------------

import java.util.*;

public class Taxis { // 创建类

       public static void main(String[] args) { // 主方法

              int arr[] = new int[] { 23, 42, 12, 8 }; // 声明数组

              Arrays.sort(arr); // 将数组进行排序

              for (int i = 0; i < arr.length; i++) { // 循环遍历排序后的数组

                     System.out.println(arr[i]); // 将排序后数组中的各个元素输出

              }

       }

}

(7)---------------------------------------------------------------------------------------------------

import java.util.*;

public class Text { // 创建类

       public static void main(String[] args) {

              String arr[] = new String[] { "ac", "bc", "dc", "yc" };

              System.out.println("替换前:");

              for (String str : arr) {

                     System.out.print(str+"\t");

              }

              Arrays.fill(arr, 2, 3, "bb");

              System.out.println("\n替换后:");

              for (String str2 : arr) {

                     System.out.print(str2+"\t");

              }

       }

}

(8)---------------------------------------------------------------------------------------------------

public class Eval { // 创建类

       public static void main(String[] args) {

              int arr[][]=new int[][]{{1,2,3},{4,5,6},{7,8,9}};

              System.out.println("数组原有内容:");

              for(int i = 0;i<arr.length;i++){

                     for(int j=0;j<arr.length;j++){

                            System.out.print(arr[i][j]);

                     }

                     System.out.println();

              }

              System.out.println("行列互换后数组内容:");

              for(int i = 0;i<arr.length;i++){

                     for(int j=0;j<arr.length;j++){

                            System.out.print(arr[j][i]);

                     }

                     System.out.println();

              }

       }

}

 

 

---------------------- android开发java培训、期待与您交流! ----------------------

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值