---------------------- 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-i和index(最大值)两个数
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培训、期待与您交流! ----------------------