数组2(笔记)
来源:互联网 发布:温州网络学堂注册 编辑:程序博客网 时间:2024/06/14 11:37
二维数组:
1.定义名为arr的二维数组
1) int[][] arr = new int[3][2];(动态初始化一)
二维数组中有3个一维数组每个一维数组中有2个元素。
2)int[][] arr =new int[3][];
arr[0] =new int[2];
arr[1] =new int[3];
arr[2] =new int[5];(动态初始化二)
二维数组中有3个一维数组,每个默认初始化null。不能写int[][] arr =new int[][5];
2.int [][] arr =new int[][]{{1,2,3},{4,5,6},{7,8,9}};(静态初始化)
定义一个名称为arr的二维数组,二维数组中有三个一维数组
每一个一维数组中具体元素也都已初始化
第一个一维数组 arr[0] = {1,2,3};
第二个一维数组 arr[1] = {4,5,6};
第三个一维数组 arr[2] = {7,8,9};
第三个一维数组的长度表示方式:arr[2].length;
public class TestArray2 { public static void main(String[] args) { int[] scores = new int[7]; int[][] scores1; scores1 = new int[][] { { 1, 2, 3, 4 }, { 1, 2, 3 }, { 6, 7, 8 } };// 静态初始化 String[][] names; names = new String[5][3];// 动态初始化1 names = new String[3][]; names[0] = new String[5]; names[1] = new String[4]; names[2] = new String[7];// 动态初始化2 int[][] i = new int[3][2]; i[1][0] = 78; i[2][1] = 99; System.out.println(i.length); System.out.println(i[1].length); System.out.println(names.length); System.out.println(names[0].length); System.out.println(); for (int a = 0; a < scores1.length; a++) { for (int b = 0; b < scores1[a].length; b++) { System.out.print(scores1[a][b] + " "); } System.out.println(); } }}
3.数组排序
插入排序
直接插入排序、折半插入排序、Shell排序
交换排序
冒泡排序、快速排序(或分区交换排序)
选择排序
简单选择排序、堆排序
归并排序
基数排序
冒泡排序:相邻两元素进行比较,如有需要则进行交换,每完成一次循环就将最大元素排在最后(如从小到大排序),下一次循环是将其它的数进行类似操作。
手动:
public void sort(int[] arr, String desc) { if (desc == "esc") { for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { // int temp = arr[j]; // arr[j] = arr[j + 1]; // arr[j + 1] = temp; swap(arr, j, j + 1); } } } } else if (desc == "desc") { for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] < arr[j + 1]) { // int temp = arr[j]; // arr[j] = arr[j + 1]; // arr[j + 1] = temp; swap(arr, j, j + 1); } } } } else { System.out.println("Have wrong!"); } } public void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; }
java.util.Arrays类中的sort()方法提供了数组元素排序功能
import java.util.*; public class Sort { public static void main(String[] args) { int [] number = {5,111,523,77,30,69,1260}; Arrays.sort(number); for(int i = 0; i < number.length; i++) System.out.println(number[i]); } }
4.数组常见异常:
1)数组下标越界异常((ArrayIndexOutOfBoundsException)
2)空指针异常(NullPointerException)
arr引用没有指向实体,却在操作实体中的元素
- 数组2(笔记)
- Javascript自学笔记2(数组)
- (Java笔记学习2)数组
- C++笔记(数组)
- 数组笔记(一)
- 数组笔记(二)
- 数组笔记(三)
- 数组笔记(四)
- 数组笔记(五)
- 数组笔记(六)
- 数组笔记(七)
- Java笔记(数组)
- 指针数组和数组指针(笔记)
- 数据结构学习笔记--(2)数组
- scala学习笔记2 数组
- Java学习笔记2--数组
- JAVA学习笔记(2)--数组
- c++学习笔记(数组)
- lintcode:Subsets
- 《Effective STL》学习笔记(第三部分)
- 【杭电oj】1874 - 畅通工程续(dijkstra,注意注意!)
- 回溯法(Backtracking)
- crash文件解析
- 数组2(笔记)
- 《Effective STL》学习笔记(第四部分)
- GDB 调试
- Item 26: 避免对universal引用进行重载
- 数组左旋转k位 std::rotate() POJ 1978
- 《Effective C++》读书笔记(第一部分)
- 输入法中的全角与半角
- 详解Hibernate中cascade与inverse
- ExpandableListView的实现