第3章 数 组

目录

第3章 数 组

一.Eclipse 的使用配置

二. 数组的概述

1.数组的概念

2.数组的特点

三.一维数组的使用

1.声明

2.初始化

3.数组元素的引用

4.数组元素的默认初始化值

5. 代码演示

6.内存的简化结构

7.练习题

四.多维数组的使用

1.概念

2.多维数组的使用

3.二维数组的内存解析

4.代码演示

5.课后练习

五.数组中涉及的常见算法

1.练习题

2.二分法查找算法

3.排序算法

3.1.冒泡排序

3.2.快速排序

4.排序算法性能对比

4.1.各种内部排序方法性能比较

4.2.排序算法的选择

六.Arrays工具类的使用

七.数组使用中的常见异常


一.Eclipse 的使用配置

详细信息参考:F:\工具\JAVA所需软件\软件\03_Eclipse\Eclipse的使用\Eclipse的使用配置.pdf

二. 数组的概述

1.数组的概念

 数组(Array),是多个相同类型数据按一定顺序排列 的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理。

 数组的常见概念:  数组名 、下标(或索引) 、元素、 数组的长度。

2.数组的特点

 数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。

 创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址。

 数组的长度一旦确定,就不能修改。

 可以直接通过下标(或索引)的方式调用指定位置的元素,速度很快。

 数组的分类: 按照维度:一维数组、二维数组、三维数组、…

按照元素的数据类型分:基本数据类型元素的数组、引用数据类型元素的数组(即对象数组)

三.一维数组的使用

1.声明

 一维数组的声明方式: type var[] 或 type[] var;

 例如: int a[];    int[] a1;    double b[];     String[] c;       //引用类型变量数组

 Java语言中声明数组时不能指定其长度(数组中元素的数), 例如: int a[5]; //非法

2.初始化

 动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行

 静态初始化:在定义数组的同时就为数组元素分配空间并赋值。

3.数组元素的引用

 定义并用运算符new为之分配空间后,才可以引用数组中的每个元素;

 数组元素的引用方式:数组名[数组元素下标]

①.数组元素下标可以是整型常量或整型表达式。如a[3] , b[i] , c[6*i];

②.数组元素下标从0开始;长度为n的数组合法下标取值范围: 0 —>n-1;如int a[]=new int[3]; 可引用的数组元素为a[0]、a[1]、a[2]

 每个数组都有一个属性length指明它的长度,例如:a.length 指明数组a的长度(元素个数)

①.数组一旦初始化,其长度是不可变的

4.数组元素的默认初始化值

数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式 初始化。

①.对于基本数据类型而言,默认初始化值各有不同

②.对于引用数据类型而言,默认初始化值为null(注意与0不同!)

5. 代码演示

package com.array.test;
/***
* @Description
* @author tyl Email:
* @version
* @date 2022年10月31日下午3:54:50
**//* 一维数组的使用* 1.一维数组的声明与初始化* 2. 如何调用数组的指定位置元素* 3.如何获取数组的长度* 4.遍历数组* 5.数组元素的默认初始化值* 6.数组的内存解析*/
public class ArrayTest {/*** @Description * @author tyl* @date 2022年10月31日下午4:46:52* @param args*//*** @Description * @author tyl* @date 2022年10月31日下午4:53:14* @param args*/public static void main(String[] args) {//1.一维数组的声明与初始化int[] ids; //声明//1.1 静态初始化:数组的初始化与数组的赋值同时进行ids = new int[]{1001, 1002, 1003, 1004}; //初始化//1.2 动态初始化:数组的初始化与数组元素的赋值分开进行String[] names = new String[5];//总结:数组一旦初始化之后,其长度就确定了。//2. 如何调用数组的指定位置元素:通过角标的方式调用// 从0开始names[0] = "wsasa";names[1] = "txxzx";names[2] = "yass";names[3] = "lqwqw";names[4] = "cgrgf";//names[5] = "wcaad"; //超出数组长度//3.如何获取数组的长度//方法属性:lengthSystem.out.println(names.length);System.out.println(ids.length);//4.遍历数组
/*      System.out.println(names[0]);System.out.println(names[1]);System.out.println(names[2]);System.out.println(names[3]);System.out.println(names[4]);*/ for (int i=0; i<names.length; i++){System.out.println(names[i]);}// 5.数组元素的默认初始化值//   ①.数组元素是整型:0int[] arr = new int[4];for (int i=0; i<arr.length; i++){System.out.println(arr[i]);}System.out.println("....................");short[] arr1 = new short[5];for (int i=0; i<arr1.length; i++){System.out.println(arr1[i]);}System.out.println("....................");// ②.数组元素是浮点型:0.0double[] arr2 = new double[3];for (int i=0; i<arr2.length; i++){System.out.println(arr2[i]);}System.out.println("....................");//③.数组元素是char型:0或‘\u0000’, 而非‘0’char[] arr3 = new char[6];for (int i=0; i<arr3.length; i++){System.out.println("....."+arr3[i]+"****");}System.out.println("....................");if(arr3[0]==0){System.out.println("hello!");}//④.数组元素是boolean型:falseboolean[] arr4 = new boolean[6];for (int i=0; i<arr4.length; i++){System.out.println("....."+arr4[i]+"****");}System.out.println("....................");// ⑤.数组元素是引用数据类型:nullString[] arr5 = new String[5];for (int i=0; i<arr5.length; i++){System.out.println("....."+arr5[i]+"****");}System.out.println("....................");if(arr5[0]==null){System.out.println("ok!");}}}

6.内存的简化结构

7.练习题

package com.array.demo;import java.util.Scanner;/*2. 从键盘读入学生成绩,找出最高分,
并输出学生成绩等级。
成绩>=最高分-10 等级为’A’
成绩>=最高分-20 等级为’B’
成绩>=最高分-30 等级为’C’
其余 等级为’D’
提示:先读入学生人数,根据人数创建int数组,
存放学生成绩。*/public class ArraryDemo1 {public static void main(String[] args) {//1.使用Scanner获取学生人数Scanner scan = new Scanner(System.in);System.out.println("请输入学生人数:");int number = scan.nextInt();//2.创建数组 动态初始化//int[] sorces = new int[number];double[] sorces = new double[number];//3.给数组赋值System.out.println("请输入"+number+"学生成绩");for(int i =0; i<sorces.length; i++){//sorces[i] = scan.nextInt();sorces[i] = scan.nextDouble();}//4.获取数组中的最高分// int maxSorce = 0;double maxSorce = 0;for(int i =0; i< sorces.length; i++){if(maxSorce <sorces[i]){maxSorce = sorces[i];}}//5.计算每个学生与最高分的差值,得到每个学生的等级,并输出等级和成绩char level;for(int i = 0; i<sorces.length; i++){if(maxSorce - sorces[i] <= 10){//System.out.println("A");level = 'A';}else if(maxSorce - sorces[i] <= 20){//System.out.println("B");level = 'B';}else if(maxSorce - sorces[i] <= 30){//System.out.println("C");level = 'C';}else{level = 'D';//System.out.println("D");}System.out.println("student "+ i +"sorce is: " + sorces[i] + " gread is "+ level);}}}
/*升景坊单间短期出租4个月,550元/月(水电煤公摊,网费35元/月),空调、卫生间、厨房齐全。
屋内均是IT行业人士,喜欢安静。所以要求来租者最好是同行或者刚毕业的年轻人,爱干净、安静。*/public class ArrayDemo {public static void main(String[] args) {int[] arr = new int[] { 8, 2, 1, 0, 3 };int[] index = new int[] { 2, 0, 3, 2, 4, 0, 1, 3, 2, 3, 3 };String tel = "";for (int i = 0; i < index.length; i++) {tel += arr[index[i]];}System.out.println("联系方式:" + tel); //联系方式:18013820100}
}

四.多维数组的使用

1.概念

 Java 语言里提供了支持多维数组的语法。

 如果说可以把一维数组当成几何中的线性图形, 那么二维数组就相当于是一个表格,像右图Excel 中的表格一样。

 对于二维数组的理解,我们可以看成是一维数组 array1又作为另一个一维数组array2的元素而存 在。其实,从数组底层的运行机制来看,其实没 有多维数组。

2.多维数组的使用

3.二维数组的内存解析

4.代码演示

package com.array.test;/***
* @Description
* @author tyl
* @version
* @date 2022年11月2日下午4:23:55
**/
/*  二维数组的使用* * 1.二维数组的声明与初始化* 2.如何调用数组的指定位置元素* 3.如何获取数组的长度* 4.遍历数组* 5.数组元素的默认初始化值* 6.数组的内存解析* * */public class ArrayTest2 {/*** * @Description * @author tyl* @date 2022年11月2日下午4:25:04* @param args*/public static void main(String[] args) {// 1. 二维数组的声明与初始化int[] arr = new int[]{1,2,3}; //一维数组//静态初始化int[][] arr1 = new int[][]{{1,2,3},{2,3},{5,6}};//动态初始化1String[][] arr2 = new String[3][2];//动态初始化2String[][] arr3 = new String[3][];//正确int[] arr4[] = new int[][]{{1,2,3},{2,3},{5,6}};int arr5[][] = {{1,2,3},{2,3},{5,6}};int [] arr6 = {1,2,3};//2. 如何调用数组的指定位置元素System.out.println(arr1[0][1]); //2System.out.println(arr2[1][1]); //nullarr3[1] = new String[4]; //给数组添加值System.out.println(arr3[1][0]); // null//3.如何获取数组的长度System.out.println(arr4.length); //3 外层System.out.println(arr4[0].length); //3 内层System.out.println(arr4[1].length); //2// 4.遍历数组for (int i=0; i<arr4.length; i++){for(int j=0; j<arr4[i].length; j++){System.out.print(arr4[i][j]+" ");}System.out.println();}//5.数组元素的默认初始化值int[][] aar = new int[3][3];System.out.println(aar[0]); // [I@15db9742  外层System.out.println(aar[0][0]); //0  内层System.out.println(aar); // [[I@6d06d69c 地址值System.out.println("..................");float[][] aar1 = new float[3][3];System.out.println(aar1[0]); // [F@7852e922 外层System.out.println(aar1[0][0]); //0.0  内层System.out.println(aar1); // [[F@4e25154f 地址值System.out.println("..................");String[][] aar2 = new String[3][3];System.out.println(aar2[0]); // [Ljava.lang.String;@70dea4e 外层System.out.println(aar2[0][0]); //null  内层System.out.println(aar2); // [[Ljava.lang.String;@5c647e05地址值System.out.println("..................");String[][] arr9 = new String[3][];double[][] arr10 = new double[3][];System.out.println(arr9[0]); //nullSystem.out.println(arr10[0]); //null//System.out.println(arr10[0][0]); //报错//6.数组的内存解析}}

5.课后练习

public class ArrayTest3 {public static void main(String[] args) {int[][] arr = new int[][]{{3,5,8},{12,9},{7,0,6,4}};int sum = 0;//记录总和for (int i =0; i<arr.length; i++){for (int j =0; j<arr[i].length; j++){sum += arr[i][j];}}System.out.println("总和为:"+sum);}}
package com.array.test;/*使用二维数组打印一个 10 行杨辉三角。
【提示】
1. 第一行有 1 个元素, 第 n 行有 n 个元素
2. 每一行的第一个元素和最后一个元素都是 1
3. 从第三行开始, 对于非第一个元素和最后一个元
素的元素。即:
yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];*/public class YangHuiTest {public static void main(String[] args) {//1.声明和初始化二维数组int [][] yangHui =new int[10][];//2.给数组的元素赋值for(int i =0; i< yangHui.length; i++){yangHui[i] = new int[i+1];//2.1 给首末元素赋值yangHui[i][0]=yangHui[i][i] = 1;//2.2给每行的非首末元素赋值if(i>1){for(int j =1; j<yangHui[i].length-1; j++){yangHui[i][j] = yangHui[i-1][j-1] + yangHui[i-1][j];}}}// 3.遍历二维数组for(int i =0;i<yangHui.length; i++){for(int j = 0; j<yangHui[i].length; j++){System.out.print(yangHui[i][j]+" ");}System.out.println();}/*        1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 */}}

声明:int[] x,y[]; 在给x,y变量赋值以后,以下选项允许通过编译的是:

a ) x[0] = y; no

b) y[0] = x; yes

c) y[0][0] = x; no

d) x[0][0] = y; no

e) y[0][0] = x[0]; yes

f) x = y; no

提示:

一维数组:int[] x 或者int x[]

二维数组:int[][] y 或者 int[] y[] 或者 int y[][]

五.数组中涉及的常见算法

1. 数组元素的赋值(杨辉三角、回形数等)

2. 求数值型数组中元素的最大值、最小值、平均数、总和等

3. 数组的复制、反转、查找(线性查找、二分法查找)

4. 数组元素的排序算法

1.练习题

package com.array.test;/*定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,
然后求出所有元素的最大值,最小值,和值,平均值,并输出出来。
要求:所有随机数都是两位数。
*/public class ArrayTest4 {public static void main(String[] args) {int[] arr = new int[10];// 给数组赋值for(int i =0; i<arr.length; i++){arr[i] = (int)(Math.random()*(99-10+1)+10);}//遍历for(int i =0; i<arr.length;i++){System.out.print(arr[i]+"\t");}System.out.println();//求出最大值int maxValue = arr[0];for(int i =0;i<arr.length;i++){if(maxValue<arr[i]){maxValue = arr[i];}}System.out.println("最大值为:"+maxValue);//求出最小值int minValue = arr[0];for(int i = 0;i<arr.length; i++){if (minValue > arr[i]){minValue = arr[i];}}System.out.println("最小值为:"+minValue);//求出总和int sum = 0;for(int i =0;i<arr.length; i++){sum += arr[i];}System.out.println("总和为:"+sum);//求出数组的平均值int avgValue = sum/arr.length;System.out.println("平均值为: "+avgValue);}}
package com.array.demo;/* 使用简单数组
(1) 创建一个名为ArrayTest的类,在main()方法中声明array1和array2两个变量,
他们是int[]类型的数组。
(2) 使用大括号{},把array1初始化为8个素数:2,3,5,7,11,13,17,19。
(3) 显示array1的内容。
(4) 赋值array2变量等于array1,修改array2中的偶索引元素,使其等于索引值
(如array[0]=0,array[2]=2)。打印出array1。*/public class ArrayDemo2 {public static void main(String[] args) {// 声明array1和array2两个变量int [] array1,array2;//使用大括号{},把array1初始化为8个素数:2,3,5,7,11,13,17,19。array1 = new int[]{2,3,5,7,11,13,17,19};//显示array1的内容for (int i =0; i<array1.length; i++){System.out.print(array1[i]+"\t");}//赋值array2变量等于array1array2 =array1;//修改array2中的偶索引元素,使其等于索引值(如array[0]=0,array[2]=2)。for(int i =0;i<array2.length;i++){if (i%2 ==0){array2[i]=i;}}System.out.println();//打印出array1for (int i =0; i<array1.length; i++){System.out.print(array1[i]+"\t");}}}

思考:array1和array2是什么关系?

答:两者的地址值是一样的,在堆空间中指向同一个数组。(只new了一个数组)

拓展:修改题目,实现array2对array1数组的复制

答:相当于在堆空间中又new一个新的数组,两个地址值。

2.二分法查找算法

package com.array.demo;/*数组的复制、反转、查找(线性查找、二分法查找)*/public class ArrayDemo3 {public static void main(String[] args) {String[] arr = new String[]{"sasas","sasas","sasasas","ssasa","sasasas"};//数组的复制String[] arr1 = new String[arr.length];for(int i =0;i<arr1.length;i++){arr1[i] = arr[i];}//打印出arrfor (int i =0; i<arr.length; i++){System.out.print(arr[i]+"\t");}System.out.println();for (int i =0; i<arr1.length; i++){System.out.print(arr1[i]+"\t");}//数组的反转
/*      // 方式1for(int i= 0;i<arr.length/2;i++){String temp = arr[i];arr[i] =arr[arr.length -i-1];arr[arr.length-i-1] = temp;}*//*      // 方式2for(int i =0,j=arr.length-1; i<j; i++,j--){String temp1 = arr[i];arr[i] = arr[j];arr[j] = temp1;}*///遍历System.out.println();for (int i =0; i<arr.length; i++){System.out.print(arr[i]+"\t");}System.out.println();// 查找(搜索)// 线性查找// String dest = "ssasa";String dest = "666";boolean isFlag = true;for(int i =0; i<arr.length;i++){if(dest.equals(arr[i])){System.out.println("找到了指定的元素, 位置为:"+i);isFlag = false;break;}}if(isFlag){System.out.println("很遗憾!");}//二分法查找// 前提:所要查找的数组必须有序int []  arr3 = new int[]{-42,-21,0,12,18,55,66};//     int dest2 = -12;int dest2 = 0;int head =0; //初始的首索引int end = arr3.length-1; //初始的未索引boolean isFlag3 = true;while(head <= end){int middle = (head+end)/2;if(dest2 == arr3[middle]){System.out.println("找到了指定的元素, 位置为:"+middle);isFlag3 = false;break;}else if(arr3[middle]> dest2){end = middle-1;}else{ //arr3[middle] < dest2head = middle + 1;}}if(isFlag3){System.out.println("很遗憾!没找到");}}}

3.排序算法

排序:假设含有n个记录的序列为{R1,R2,...,Rn},其相应的关键字序列为 {K1,K2,...,Kn}。将这些记录重新排序为{Ri1,Ri2,...,Rin},使得相应的关键 字值满足条Ki1<=Ki2<=...<=Kin,这样的一种操作称为排序。

 通常来说,排序的目的是快速查找。

衡量排序算法的优劣:

1.时间复杂度:分析关键字的比较次数和记录的移动次数

2.空间复杂度:分析排序算法中需要多少辅助内存

3.稳定性:若两个记录A和B的关键字值相等,但排序后A、B的先后次序保 持不变,则称这种排序算法是稳定的。

排序算法分类:内部排序和外部排序。

 内部排序:整个排序过程不需要借助于外部存储器(如磁盘等),所有排 序操作都在内存中完成。

 外部排序:参与排序的数据非常多,数据量非常大,计算机无法把整个排 序过程放在内存中完成,必须借助于外部存储器(如磁盘)。外部排序最 常见的是多路归并排序。可以认为外部排序是由多次内部排序组成。

3.1.冒泡排序

介绍: 冒泡排序的原理非常简单,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。

排序思想:

1. 比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。

2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步 做完后,最后的元素会是最大的数。

3. 针对所有的元素重复以上的步骤,除了最后一个。

4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较为止。

代码实现:

package com.array.test;/*冒泡排序的实现* */
public class BubbleSortTest {/*** * @Description * @author tyl* @date 2022年11月4日下午7:39:34* @param args*/public static void main(String[] args) {int[] arr = new int[]{55,66,44,88,-12,-65,0,55,22};//冒泡排序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;}}}//需要打印才能显示System.out.println();for (int i =0; i<arr.length; i++){System.out.print(arr[i]+"\t");}System.out.println();}
}

3.2.快速排序

介绍: 快速排序通常明显比同为O(nlogn)的其他算法更快,因此常被采用,而且快 排采用了分治法的思想,所以在很多笔试面试中能经常看到快排的影子。可见掌握快排的重要性。

快速排序(Quick Sort)由图灵奖获得者Tony Hoare发明,被列为20世纪十 大算法之一,是迄今为止所有内排序算法中速度最快的一种。冒泡排序的升 级版,交换排序的一种。快速排序的时间复杂度为O(nlog(n))。

排序思想:

1. 从数列中挑出一个元素,称为"基准"(pivot),

2. 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准 值大的摆在基准的后面(相同的数可以到任一边)。在这个分区结束之后, 该基准就处于数列的中间位置。这个称为分区(partition)操作。

3. 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数 列排序。

4. 递归的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好 了。虽然一直递归下去,但是这个算法总会结束,因为在每次的迭代 (iteration)中,它至少会把一个元素摆到它最后的位置去。

4.排序算法性能对比

4.1.各种内部排序方法性能比较

1.从平均时间而言:快速排序最佳。但在最坏情况下时间性能不如堆排序和归 并排序。

2.从算法简单性看:由于直接选择排序、直接插入排序和冒泡排序的算法比较 简单,将其认为是简单算法。对于Shell排序、堆排序、快速排序和归并排序 算法,其算法比较复杂,认为是复杂排序。

3.从稳定性看:直接插入排序、冒泡排序和归并排序时稳定的;而直接选择排序、快速排序、 Shell排序和堆排序是不稳定排序

4.从待排序的记录数n的大小看,n较小时,宜采用简单排序;而n较大时宜采 用改进排序。

4.2.排序算法的选择

(1)若n较小(如n≤50),可采用直接插入或直接选择排序。 当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直 接插入,应选直接选择排序为宜。

(2)若文件初始状态基本有序(指正序),则应选用直接插入、冒泡或随机的快速排 序为宜;

(3)若n较大,则应采用时间复杂度为O(nlgn)的排序方法:快速排序、堆排序或 归并排序。

六.Arrays工具类的使用

java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比 如排序和搜索)的各种方法。

package com.array.test;import java.util.Arrays;/** java.util.Arrays : 操作数组的工具类,定义了许多操作数组的方法*/public class ArraysTest {public static void main(String[] args) {//1.boolean equals(int[] a,int[] b)  判断两个数组是否相等。int [] arr1 = new int[]{1,2,1,3};int [] arr2 = new int[]{1,1,2,3};boolean isEquals = Arrays.equals(arr1, arr2);System.out.println(isEquals);//2.String toString(int[] a) 输出数组信息System.out.println(Arrays.toString(arr2));//3.void fill(int[] a,int val)  将指定值填充到数组之中。Arrays.fill(arr2, 10);System.out.println(Arrays.toString(arr2));//4.void sort(int[] a)  对数组进行排序Arrays.sort(arr1);System.out.println(Arrays.toString(arr1));//5.nt binarySearch(int[] a,int key)  对排序后的数组进行二分法检索指定的值。int []  arr3 = new int[]{-42,-21,0,12,18,55,66};//int index = Arrays.binarySearch(arr3, 0);int index = Arrays.binarySearch(arr3, 88);if (index >= 0){System.out.println(index);}else{System.out.println("没找到");}}}

七.数组使用中的常见异常

package com.array.test;import javax.xml.soap.SAAJResult;/** 数组中的常见异常* 1.数组脚标越界异常(ArrayIndexOutOfBoundsException)* 2.空指针异常(NullPointerException)*/
public class ArraysExceptionTest {public static void main(String[] args) {//1.数组脚标越界异常(ArrayIndexOutOfBoundsException)int[] arr = new int[]{1,2,3,4,5};//      for(int i =0;i<=arr.length; i++){
//          System.out.println(arr[i]);
//      }//     System.out.println(arr[-2]);//2.空指针异常(NullPointerException)//情况1:
//      int[] arr1 =new int[]{1,2,3};
//      arr1 =null;
//      System.out.println(arr1[0]);//情况2:
//      int[][] arr2 = new int[4][];
//      System.out.println(arr2[0][0]);//情况3:
//      String[] arr3 = new String[]{"aa","bb","cc"};
//      arr3[0] = null;
//      System.out.println(arr3[0].toString());}
}

 数组东西细节还挺多的,杨辉三角、冒泡排序、快速排序都挺难的,需要记住!

2022.11.4学习结束,下一章面向对象继续加油!........................................................................

Java笔记3.1——Java基础之数组相关推荐

  1. Java笔记整理-02.Java基础语法

    1,标识符 由英文字母.数字._(下划线)和$组成,长度不限.其中英文字母包含大写字母(A-Z)和小写字母(a-z),数字包含0到9. 标识符的第一个字符不能是数字(即标识符不能以数字开头). 标识符 ...

  2. Java笔记(六)——基础知识(郝斌)

    178.容器 为什么需要容器 数组存在两个缺陷 数组长度难以扩充 数组中的元素类型必须相同 容器可以弥补数组的这两个缺陷 举例: 假设A是个类名 A[]arr = new A[10] 表示分配了一个数 ...

  3. Java笔记-01(Java语言的特性、JDK、JRE、JVM三者之间的关系和Java重点术语)

    1.Java语言的特性 1.1.简单性在Java语言当中真正操作内存的是:JVM(Java虚拟机)所有的java程序都是运行在Java虚拟机当中的.而Java虚拟机执行过程中再去操作内存.对于C或者C ...

  4. Java常用知识点汇总(基础:数组,类与对象,接口与继承)

    目录 数组 1.引用 2.增强型for循环 3.复制数组 arraycopy() 4.针对数组的工具类 Arrays 5.选择法排序 6.冒泡排序 7.练习-二维数组中的查找(剑指offer) 类与对 ...

  5. java笔记(一) 基础输出 炫技

    public class Hello {public static void main( String args[]){System.out.println("大家好");Syst ...

  6. java笔记_2020年java程序员、java工程师必备资料(内含java学习思维图、视频教程、源码笔记等)...

    学java的程序猿们看过来 不谈虚的,直来干货. 教程介绍 1.适合零基础学员:从Java语言起源开始,循序渐进,知识点剖析细致且每章配备大量随堂练习 2.课程内容推陈出新:基于JDK 11,将Jav ...

  7. Java笔记2.3——Java基本语法之程序流程控制

    Java基础 Java基本语法(下):程序流程控制 目录 目录 Java基础 Java基本语法(下):程序流程控制 一.程序流程控制 1.理论 2.分支语句1: if-else结构 2.1.if-el ...

  8. think in java笔记_Thinking in java读书笔记 PDF 下载

    主要内容: 第一章对象导论 1. 因为类描述了具有相同特征(数据元素.静态)和行为(功能.动态)的对象集合.public表示紧随其后的元素对任何人都是可用的,而private这个关键字表示除类型创建者 ...

  9. java笔记(自学java过程中遇到的不理解的地方)qvq

    1.单引号和双引号以及char和String的区别 单引号引的数据 是char类型的,双引号引的数据 是String类型的:char定义时用单引号,只能有一个字母,数字.char c='c'; 而St ...

最新文章

  1. 图论 ---- Codeforces Round #649 (Div. 2)D题[dfs求环+深度分层求图中独立集]
  2. ubuntu自动挂载NTFS的方法
  3. 疯狂ios讲义疯狂连载之加载界面的图片
  4. vs2019功能介绍_MFC界面库BCGControlBar v30.0新功能详解:支持VS 2019
  5. VS.NET 学习方法论——我的VS.NET学习之旅
  6. php吞了throw错误,PHP 异常与错误处理
  7. Servlet读取文件的最好的方式
  8. CV_LOAD_IMAGE_COLOR 和 CV_BGR2RGBA找不到定义
  9. Python爬虫知识点四--scrapy框架
  10. 《Java技术》第四次作业
  11. C#实现微信自动发送消息
  12. 还不了解小程序?看这一篇文章就够了
  13. 低配置享受3D立体游戏 手把手教你设置
  14. python画猫hellokitty_如何用铅笔画HelloKitty? 原来是这样的
  15. 使用sklearn训练模型出现【DataConversionWarning: A column-vector y was passed when a 1d array was expected】
  16. Linux CPU 100%问题 | top 命令详解
  17. 显示地图不出来的问题解决
  18. HBase批量写入数据
  19. python3插值法
  20. 第一类第二类贝塞尔函数

热门文章

  1. HTML搜狐店铺,搜狐成为IE9发布合作伙伴 展示HTML5应用
  2. 《机器学习实战》——朴素贝叶斯
  3. redis源代码分析 – event library - Dicky - 开源中国社区
  4. 双向链表增删改查C语言代码,C语言中双向链表的增删改查输出源文件代码
  5. 7月5号cf服务器维护,cf2015年5月7日维护到几点 cf5月7日更新公告
  6. 再见牛根生,再见英雄时代
  7. 对于共享电脑的到来,您有什么想说的
  8. 免费WAP改变自我现状 谈四个赢利途
  9. 互联网2B和2C的区别
  10. 微软surface屏幕测试软件,Soomal作品 - Microsoft 微软 Surface Pro 4平板笔记本电脑屏幕测评报告 [Soomal]...