3、数组及排序算法(2天)
3.1 数组的概述 2课时
3.2 一维数组的使用 3课时
3.3 多维数组的使用 3课时
3.4 数组中涉及到的常见算法 3课时
3.5 Arrays工具类的使用 3课时
3.6 数组使用中的常见异常 2课时

3-1 数组的概述



3-2 一维数组的使用

/**
* @author Heaton
* @email tzy70416450@163.com
* @date 2018/9/10 0010 14:04
* @describe
* 1-数组是多个相同类型数据的组合,实现对这些数据的统一管理
*
* 数组本身属于引用类型
* 数组的元素,可以是基本数据类型,也可以是引用数据类型
* 数组声明与使用: 数据类型 [] 变量名 = new 数据类型[]{}; 如:short [] scorse2 = new short[]{60,70,80,90,100};
* 或 数据类型 [] 变量名 = {}; 如:byte [] scorse1 = {60,70,80,90,100};
* 使用时根据下标使用 : 变量名[下标] = 某一个值;
*
* 变量声明与赋值: 数据类型 变量名 = 值; 例如: int i = 1;
*/ public class ArrayTest {
public static void main(String[] args) {;
//1.1一维数组的声明和初始化
int [] scorse;
byte [] scorse1 = {60,70,80,90,100};
short [] scorse2 = new short[]{60,70,80,90,100};
int [] scorse3 ;
String [] names;
//1.2初始化
//静态初始化:数组的初始化和数组元素的赋值是同时进行的。
scorse = new int[]{60,70,80,90,100};
//scorse3 = {60,70,80,90,100};//不能这么写
//动态初始化:数组的初始化和数组元素的赋值是分开进行的。
names = new String[4]; //2数组元素的调用,通过下角标的方式调用,角标从0开始,到数组长度-1结束。 动态赋值
names[0] = "王瑞";
names[1] = "哞哞";
names[2] = "小王";
names[3] = "小周"; int[] arr1 = {1,2,3};//简写方式,JAVA自动类型推断; //错误的写法
/*
int [] arr2 = new int[3]{1,2,3};
int [3] arr3 = new int[]{60,70,80,90,100};
int arr4;
arr4 = new int[]{1,2,3,4,5};
*/ //3.如何获取数组的长度?
//String a = "asdasdasd";
//System.out.println(a.length());
System.out.println(scorse.length);
System.out.println(names.length);//4 //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]);//报数组下标越界异常java.lang.ArrayIndexOutOfBoundsException:
//names[4] = "小周";
//总结:不管是静态还是动态初始化,一旦数组初始化完成,其长度就是确定的! for (int i = 0; i < scorse.length; i++) {
System.out.println(scorse[i]);
}
}
}

	//二、一维数组的使用(5-6)
public class ArrayTest1 {
public static void main(String[] args) {
//5.不同类型的数组元素的默认初始化值。
//5.1 整型数组:byte、short、int、long的默认数组元素的初始化值都为:0
byte[] arr1 = new byte[4];
arr1[0] = 1;
for(int i = 0;i < arr1.length;i++){
System.out.println(arr1[i]);
} long[] arr2 = new long[4];
System.out.println("long:" + arr2[0]); //5.2 浮点型数组:float、double 的默认数组元素的初始化值都为:0.0
float[] arr3 = new float[5];
for(int i = 0;i < arr3.length;i++){
System.out.println("float:" + arr3[i]);
} //5.3 字符型数组:char的默认数组元素的初始化值都为:'\u0000' \u开头的是一个Unicode码的字符,每一个'\u0000'都代表了一个空格.
char[] arr4 = new char[5];
for(int i = 0;i < arr4.length;i++){
System.out.println("char:" + arr4[i] + "-----");
} //5.4 布尔型数组:boolean的默认数组元素的初始化值都为:false
boolean[] arr5 = new boolean[5];
for(int i = 0;i < arr5.length;i++){
System.out.println("boolean:" + arr5[i]); } //5.5 引用数据类型数组:数组、接口、类的默认数组元素的初始化值为:null
String[] arr6 = new String[5];
for(int i = 0;i < arr6.length;i++){
System.out.println("String:" + arr6[i]);//null,不是"null" } //6.一维数组的内存解析(难点) } }



练习

















	import java.util.*;

	/*
* 一维数组的练习二
*
* 从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
成绩>=最高分-10 等级为’A’
成绩>=最高分-20 等级为’B’
成绩>=最高分-30 等级为’C’
其余 等级为’D’ 提示:先读入学生人数,根据人数创建int数组,存放学生成绩。 */ public class ArrayTest1 {
public static void main(String[] args) {
//1.Scanner的实例化
Scanner s = new Scanner(System.in);
//2.根据提示,获取数组的元素的个数:数组的长度
System.out.println("请输入学生人数:");
int num = s.nextInt();
//3.根据获取的数组的长度,创建存放学生成绩的数组:动态
int[] scores = new int[num];
//4.通过循环的方式,使用Scanner获取每一个学生的成绩,并给数组的元素进行初始化
System.out.println("请输入" + num + "个成绩:");
int maxScore = 0;//记录最高分
for(int i = 0;i < scores.length;i++){
scores[i] = s.nextInt(); //5.在给数组元素赋值过程中,“顺便”获取成绩的最高分
if(maxScore < scores[i]){
maxScore = scores[i];
} }
System.out.println("最高分是:" + maxScore);
//不使用如下的方式:效率差
//5.通过遍历数组,获取学生成绩的最大值,并输出
// int maxScore = 0;
// for(int i = 0;i < scores.length;i++){
// if(maxScore < scores[i]){
// maxScore = scores[i];
// }
// } //6.通过遍历数组,获取每个学生的成绩,并输出其等级。(通过判断其成绩与最高分的差值)
char studentScores;
for(int i = 0;i < scores.length;i++){ if(scores[i] >= maxScore - 10){
studentScores = 'A';
}else if(scores[i] >= maxScore - 20){
studentScores = 'B';
}else if(scores[i] >= maxScore - 30){
studentScores = 'C';
}else{
studentScores = 'D';
} System.out.println("student " + i + " score is " + scores[i] + ", studentScores is " + studentScores);
} }
}

3-3 多维数组的使用







/**
* @author Heaton
* @email tzy70416450@163.com
* @date 2018/9/11 0011 13:40
* @describe 二维数组: 一维数组中的元素,恰好是一维数组
*/
public class ArrayTest2 {
public static void main(String[] args) {
String[] names = new String[]{"王瑞", "小宁"};
//1.二维数组初始化
//1.1静态初始化
String[][] arr1 = new String[][]{{"王瑞", "13548965486"}, {"小宁", "17356897845"}, {"张飞", "15896547896"}};
//1.2动态初始化
int[][] arr2 = new int[3][2];
//1.2动态初始化
int[][] arr3 = new int[3][];
arr3[0] = new int[]{1, 2, 3};
arr3[1] = new int[]{1, 2};
arr3[2] = new int[4]; //2.通过下标的方式进行数组元素的调用
System.out.println(arr1[1][0]);
arr2[1][0] = 1;
//{{0,0},{1,0},{0,0}}
System.out.println(arr2[1][0]);//1
//3.数组的属性:length
System.out.println(arr1.length);//3
System.out.println(arr1[0].length);//2
System.out.println(arr1[1].length);//2
System.out.println(arr1[2].length);//2
System.out.println("^^^^^^^^^^^^^^^");
//4.遍历二维数组
for (int i = 0; i < arr1.length ; i++) {
for (int j = 0; j < arr1[i].length; j++) {
//怎么拿arr1[0][0]
System.out.print(arr1[i][j] + "\t");
}
System.out.println();
} }
}

/**
* @author Heaton
* @email tzy70416450@163.com
* @date 2018/9/11 0011 14:10
* @describe 二维数组的使用
*/
public class ArrayTest3 {
public static void main(String[] args) {
//5.二维数组元素的值:
//5.1如果调用的是二维数组元素a,而元素a任然是数组,根据元素a的数组元素类型,决定其内部元素的默认初始化值,与一维数组的规定相同
//5.2如果输出元素a,其值决定于是否初始化过,如果初始化过.则输出其他地址值。如果没有初始化过,则值为null.
short[][] arr1 = new short[3][2];
System.out.println(arr1[0][1]);//0
System.out.println(arr1[0]);//[S@28d93b30
System.out.println(arr1);//[[S@1b6d3586 boolean[][] arr2 = new boolean[3][2];
System.out.println(arr2[1][1]);//false int[][] arr3 = new int[3][];
System.out.println(arr3[1]);// null arr3[1] = new int[2];
System.out.println(arr3[1]);//[I@4554617c System.out.println("&&&&&&&&&&&&");
//6。二维数组的内存解析(难点)
int [][] arr = new int[3][];
arr[1] = new int[]{1,2,3};
arr[2] = new int[3];
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[1]); }
}









练习3

练习4

/**
* @author Heaton
* @email tzy70416450@163.com
* @date 2018/9/11 0011 15:06
* @describe
* 使用二维数组打印一个 10 行杨辉三角.
* 1
* 1 1
* 1 2 1
* 1 3 3 1
* 1 4 6 4 1
* 1 5 10 10 5 1
* ....
*
* 1
* 1 1
* 1 2 1 :yanghui[3][1] = yanghui[2][0] + yanghui[2][1];
* 1 3 3 1
* 1 4 6 4 1
* 1 5 10 10 5 1 ::yanghui[6][2] = yanghui[5][1] + yanghui[5][2];
* ....
*
* 【提示】
* 1. 第一行有 1 个元素, 第 n 行有 n 个元素
* 2. 每一行的第一个元素和最后一个元素都是 1
* 3. 从第三行开始, 对于非第一个元素和最后一个元素的元素.
* yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
*
*/
public class YangHuiTriAngle {
public static void main(String[] args) {
//1.创建此二维数组:new int[10][];
int[][] yanghui = new int[10][];
//2.为这个二维数组元素的元素赋值
for (int i = 0; i <yanghui.length; i++) {
//先把每一行元素个数定义出来
yanghui[i] = new int[i+1];
//给每行首位元素赋值
yanghui[i][0] = yanghui[i][i] = 1;
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];
}
}
} for (int i = 0; i < yanghui.length; i++) {
for (int j = 0; j < yanghui[i].length; j++) {
System.out.print(yanghui[i][j] + "\t");
}
System.out.println();
} }
}

3-4 数组中涉及到的常见算法

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

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

3.数组元素的排序

案例

	/**
*
* 1.求数组元素的最大值、最小值、平均数、总和等--->针对于数值类型的数组
*
*
*
*/
public class ArrayTest1 {
public static void main(String[] args) {
int[] arr1 = new int[]{23,5,23,64,66,-9,75,-77,3}; //求最大值
int max = arr1[0];
for(int i = 1;i < arr1.length;i++){ if(max < arr1[i]){
max = arr1[i];
} }
System.out.println("数组的最大值为:" + max); //求最小值
int min = arr1[0];
for(int i = 1;i < arr1.length;i++){ if(min > arr1[i]){
min = arr1[i];
} }
System.out.println("数组的最小值为:" + min); //求总和
int sum = 0;
for(int i = 0;i < arr1.length;i++){
sum += arr1[i];
}
System.out.println("数组的总和为:" + sum); //求平均值
double avg = 0;
avg = sum / (arr1.length + 0.0);
System.out.println("数组的平均数为:" + avg); }
}

案例

	/*
* 2.数组的复制、反转、查找(线性查找、二分法查找)
*/
public class ArrayTest2 {
public static void main(String[] args) { String[] arr1 = new String[]{"MM","JJ","GG","DD","AA","BB","CC"}; //数组的复制
String[] arr2 = new String[arr1.length];
for(int i = 0;i < arr2.length;i++){
arr2[i] = arr1[i];
} //数组的反转
// String[] arr3 = new String[arr1.length];
// for(int i = arr1.length - 1;i >= 0;i--){
// arr3[arr3.length - i - 1] = arr1[i];
// }
//
// arr1 = arr3; //反转方式一:
// for(int i = 0,j = arr1.length - 1;i < j;i++,j--){
// String temp = arr1[i];
// arr1[i] = arr1[j];
// arr1[j] = temp;
// } //反转方式二:
// for(int i = 0;i < arr1.length / 2;i++){
// String temp = arr1[i];
// arr1[i] = arr1[arr1.length - 1 - i];
// arr1[arr1.length - 1 - i] = temp;
// } //遍历
for(int i = 0;i < arr1.length;i++){
System.out.print(arr1[i] + " ");
} //线性查找
String value = "CCC";
int i = 0; for(;i < arr1.length;i++){
if(arr1[i].equals(value)){
System.out.println("找到指定元素,索引为:" + i);
break;
}
} if(i == arr1.length){
System.out.println("未找到指定元素"); } //二分法查找:要求此数组必须是有序的。
int[] arr3 = new int[]{-99,-54,-2,0,2,33,43,256,999};
boolean isFlag = true;
// int number = 256;
int number = 25;
int head = 0;//首索引位置
int end = arr3.length - 1;//尾索引位置
while(head <= end){
int middle = (head + end) / 2;
if(arr3[middle] == number){
System.out.println("找到指定的元素,索引为:" + middle);
isFlag = false;
break;
}else if(arr3[middle] > number){
end = middle - 1;
}else{//arr3[middle] < number
head = middle + 1;
}
} if(isFlag){
System.out.println("未找打指定的元素");
} }
}

数组排序
  • 选择排序

    • 直接选择排序、堆排序
  • 交换排序
    • 冒泡排序、快速排序
  • 插入排序
    • 直接插入排序、折半插入排序、Shell排序
  • 归并排序
  • 桶式排序
  • 基数排序
冒泡排序

排序思想:

相邻两元素进行比较,如有需要则进行交换,每完成一次循环就将最大元素排在最后(如从小到大排序),下一次循环是将其它的数进行类似操作。

案例

	/**
* 3.数组元素的排序
*
*
*
* @author Administrator
*
*/
public class ArrayTest3 {
public static void main(String[] args) {
int[] arr = new int[]{-43,23,9,-43,0,222,1,99};
//实现冒泡排序:从小到大
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;
}
} } //遍历
for(int i = 0;i < arr.length;i++){
System.out.println(arr[i] + " ");
} }
}
排序方法的选择

(1)若n较小(如n≤50),可采用直接插入或直接选择排序。

当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直接插入,应选直接选择排序为宜。

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

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

练习6

案例

/**

* 使用简单数组

(1)创建一个名为ArrayExer的类,在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。

	思考:array1和array2是什么关系?array1和array2指向堆空间中同一个数组。
拓展:修改题目,实现array2对array1数组的复制 * @author Administrator
*
*/
public class ArrayExer {
public static void main(String[] args) {
int[] array1,array2; 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] + " ");
} //赋值array2变量等于array1
array2 = array1;//此时,array1和array2指向堆空间中同一个数组。 //修改array2中的偶索引元素
for(int i = 0;i < array2.length;i++){
if(i % 2 == 0){
array2[i] = i;
}
} //遍历array1:
System.out.println();
for(int i = 0;i < array1.length;i++){
System.out.print(array1[i] + " ");
} }
}



3-5 Arrays工具类的使用





案例

	/**
* 3-5 Arrays:操作数组的工具类
*
*
*/
public class ArraysTest {
public static void main(String[] args) {
int[] arr1 = {1,2,2,34,5,6};
int[] arr2 = {2,1,2,34,5,6};
//1.equals():比较两个数组的元素,是否完全相同。
boolean b = Arrays.equals(arr1, arr2);
System.out.println(b); //2.toString():输出显示数组的具体的元素
System.out.println(arr1);//地址值
System.out.println(Arrays.toString(arr1)); //3.将数组的所有元素重新赋值,赋值为参数2的值
//Arrays.fill(arr1, 10);
//System.out.println(Arrays.toString(arr1)); //4.sort():排序,底层使用的是快速排序实现的。
Arrays.sort(arr1);
System.out.println(Arrays.toString(arr1));//[1, 2, 2, 5, 6, 34] //5.binarySearch():使用二分法,在数组中查找指定元素的索引。前提:要求此数组是有序的。
int index = Arrays.binarySearch(arr1, 55);
System.out.println(index); //6.copyOf()复制指定的数组,用零截取或填充(如有必要),以便复制具有指定的长度。
int[] arr4 = Arrays.copyOf(arr3, 20);
System.out.println(Arrays.toString(arr4));
}
}

3-6 数组使用中的常见异常

案例

	/**
* 3-6数组中的常见异常:
*
* 1.数组角标越界异常:ArrayIndexOutOfBoundsException
*
* 2.空指针异常:NullPointerException
*
*
*/
public class ArrayExceptionTest {
public static void main(String[] args) {
//1.数组角标越界异常:ArrayIndexOutOfBoundsException
int[] arr1 = new int[10];//角标:0-9 arr1[0] = 10;
arr1[9] = 20; // arr1[10] = 30;
// arr1[-1] = 1; //2.空指针异常:NullPointerException
//举例1:
// int[] arr2 = new int[10];
// arr2 = null;
// System.out.println(arr2[0]);//空指针异常 //举例2:
// int[][] arr3 = new int[3][];
// System.out.println(arr3[0]);//null
//// arr3[0] = new int[]{1,2,3};
// System.out.println(arr3[0][0]);//空指针异常 //举例3:
String[] arr4 = new String[4];
System.out.println(arr4[0].toString()); }
}

银行提款机项目

import java.util.Arrays;
import java.util.Scanner; /**
* @author Heaton
* @email tzy70416450@163.com
* @date 2018/9/12 0012 15:07
* @describe 银行提款机
* 注册
* 登陆
* -查询余额
* -转账
* -提款
* -存款
* -返回上一级
* 退出
*/
public class BankATM {
public static void main(String[] args) {
String[] usernames = new String[1];
Arrays.fill(usernames, "");
int[] passwords = new int[1];
double[] balances = new double[1];
int index = 0; a:
while (true) {
if(Arrays.binarySearch(usernames,"")<0){
usernames = Arrays.copyOf(usernames, usernames.length * 2);
passwords = Arrays.copyOf(passwords,passwords.length*2);
balances = Arrays.copyOf(balances,balances.length*2);
for (int i = 0; i < usernames.length; i++) {
if(usernames[i]==null){
usernames[i] = "";
}
}
}
System.out.println(Arrays.toString(usernames)+"_____"+usernames.length);
System.out.println(Arrays.toString(passwords)+"_____"+passwords.length);
System.out.println(Arrays.toString(balances)+"_____"+balances.length);
System.out.println("***欢迎来到BANK OF 橙子***");
System.out.println("1.注册");
System.out.println("2.登陆");
System.out.println("3.退出");
Scanner s = new Scanner(System.in);
System.out.println("请输入您选择的业务");
String business = s.nextLine();
if (business.equals("1")) {
i:
while (true) {
System.out.println("请输入用户名:");
String username = s.next();
System.out.println("请输入密码:");
int password = s.nextInt();
while (true) {
System.out.println("是否创建用户名为:" + username + ",密码:" + password + "的用户?\n确认请输入Y;重新创建输入N.");
String isNY = s.next();
if (isNY.equals("Y") || isNY.equals("y")) {
for (int i = 0; i < usernames.length; i++) {
if (usernames[i].equals("")) {
usernames[i] = username;
passwords[i] = password;
System.out.println("用户名为:" + username + ",密码:" + password + "的用户注册成功");
break i;
}
}
break;
} else if (isNY.toUpperCase().equals("N")) {
continue i;
} else {
System.out.println("输入错误请重新输入");
}
}
}
} else if (business.equals("2")) {
j:
while (true) {
System.out.println("请输入用户名:");
String username = s.next();
System.out.println("请输入密码:");
int password = s.nextInt(); boolean isUserTrue = true;
for (int i = 0; i < usernames.length; i++) {
if (usernames[i].equals(username)) {
index = i;
break;
}
if (i == usernames.length - 1) {
System.out.println("未找到该用户,请重新输入");
isUserTrue = false;
continue j;
}
}
if (passwords[index] != password && isUserTrue) {
System.out.println("账户密码错误!请重新输入");
continue j;
}
System.out.println("登陆成功");
k:
while (true) {
System.out.println(" * -1.查询余额\n" +
" * -2.转账\n" +
" * -3.提款\n" +
" * -4.存款\n" +
" * -5.返回上一级");
System.out.println("请输入你要的业务");
switch (s.next()) {
case "1":
System.out.println("您的账户余额为:" + balances[index]);
break;
case "2":
b:
while (true){
int index2 = 0;
System.out.println("请输入对方用户名");
String name = s.next();
for (int i = 0; i < usernames.length; i++) {
if(i==index){
continue ;
}
if(!usernames[i].equals(name)){
System.out.println("未找到该用户;请重新输入用户名");
continue ;
}else{
index2 = i;
System.out.println("请输入转账金额");
double transferAmount = s.nextDouble();
if (balances[index] >= transferAmount) {
balances[index] = balances[index] - transferAmount;
balances[index2] = balances[index2] + transferAmount;
System.out.println("转账成功");
break b;
}else{
System.out.println("转账失败,这不是信用卡,亲!");
} }
}
}
break ;
case "3":
System.out.println("您的账户余额为:" + balances[index]);
System.out.println("请输入您要提款的金额");
double withdrawalAmount = s.nextDouble();
if (balances[index] >= withdrawalAmount) {
balances[index] = balances[index] - withdrawalAmount;
System.out.println("提款成功");
}else{
System.out.println("提款失败,这不是信用卡,亲!");
}
break;
case "4":
System.out.println("您的账户余额为:" + balances[index]);
System.out.println("请输入您要存款的金额");
double depositAmount = s.nextDouble();
balances[index] += depositAmount;
System.out.println("存款成功");
break;
case "5":
continue a;
default:
System.out.println("输入错误,请重新输入");
continue k;
}
} } } else if (business.equals("3")) {
break;
} else {
System.out.println("输入错误请重新输入");
}
} }
}

第3章 Java数组(上): 一维数组和二维数组的更多相关文章

  1. Java编程基础阶段笔记 day06 二维数组

    二维数组 笔记Notes 二维数组 二维数组声明 二维数组静态初始化与二位初始化 二维数组元素赋值与获取 二维数组遍历 二维数组内存解析 打印杨辉三角 Arrays工具类 数组中常见的异常 二维数组 ...

  2. c指针与数组,传参问题,指针数组与数组指针的区别,二维数组动态内存分配

    一 数组的结构:顺序存储,看谭浩强中的图,牢记 1.数组名指代一种数据结构:数组 现在可以解释为什么第1个程序第6行的输出为10的问题,根据结论1,数组名str的内涵为一种数据结构,即一个长度为10的 ...

  3. 【Java】 剑指offer(3) 二维数组中的查找

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上 ...

  4. 《java入门第一季》之二维数组

    /* 格式2: 数据类型[][] 数组名 = new 数据类型[m][]; m:表示这个二维数组有多少个一维数组. 列数没有给出,可以动态的给.这一次是一个变化的列数. */ class Array2 ...

  5. [C++ Primer Plus] 第7章、函数(一)程序清单——递归,指针和const,指针数组和数组指针,函数和二维数组

    程序清单7.6 #include<iostream> using namespace std; ; int sum_arr(int arr[], int n);//函数声明 void ma ...

  6. Java基础系列(39)- 二维数组

    多维数组 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组. 二维数组 int a[][]=new int[2][5]; 解析:以上二维数组a可以看成一个 ...

  7. 数组(Array),二维数组,三维数组

    数组(Array):相同类型数据的集合就叫做数组. (一)定义数组的方法: A) type[] 变量名 = new type[数组中元素的个数] 例如: int[] a = new int[10] ; ...

  8. C语言数组篇(四)二维数组

      二维数组声明: ][] ={{,,},{,,}; //两行 三列         二维数组在声明的时候可以不写行,但一定要写列 ] = {{,},{,,},{}}; //未声明的地方自动补零 二维 ...

  9. PHP如何判断一个数组是一维的还是二维的

    1.首先我们有一个PHP内置函数 count(); count(array,mode); array是数组,mode默认为0,1是递归的计数 <?php if(count($arr) == co ...

  10. 学JAVA第十天,一维数组及二维数组的使用。

    今天老师讲了JAVA数组,之前学C#的时候就学过一维数组,至于二维数组当时只是粗略普及了一下. 现在想学JAVA又学到了数组,但是这次不同,注重讲二维数组,因为老师知道我们都了解一维数组了. 所以现在 ...

随机推荐

  1. mybatis分页插件PagePlugin

    查询的参数对象里面继承PageInfoWrapper类(也可以不继承这个类,但要保证查询参数对象里面必须要有一个PageInfo属性) 分页信息都在PageInfo这个类里,查询的时候,分页参数,填充 ...

  2. Maven的pom配置文件

    1.1           Maven的pom配置文件 1.1.1            pom文件内容和作用 Pom.xml文件用来设置项目的项目依赖.插件.项目版本等信息,其中必须的是xml的根元 ...

  3. 每天跟着书敲Mysql

    要深入学下Mysql操作啦 CRUD,create,retrieve,update,delete

  4. yum、ip、等命令无法不全子命令解决

    安装一个软件包即可 yum -y install bash-bash-completion 然后重新打开终端即可

  5. 基于Xshell使用密钥方式连接远程主机

    基于Xshell使用密钥方式连接远程主机 连接远程主机,就验证身份而言,一般有两种方式,一种是通过用户密码:另一种通过公钥的方式(Public Key). 图1 xshell支持验证登录用户的方式 下 ...

  6. JQuery 获取select被选中的value和text

    html代码: <select name="test" > <option value="0">请选择</option> & ...

  7. Highcharts 时间格式化函数

    1.函数构造: Highcharts.dateFormat(String format, [Number time], [Boolean capitalize])    2.参数列表:   Strin ...

  8. Descriptors;Hello1 project中的Web.xml

    Deployment Descriptors(描述符)是一个xml文件,用来描述如何部署一个模块或者应用(根据描述符中定义的配置和容器选项).举例来说,一个EJB的部署描述符会向EJB容器传递如何管理 ...

  9. 【C/C++】泛型栈

    用 C 语言实现泛型栈 mystack.h #ifndef __MYSTACK_H__ #define __MYSTACK_H__ #include <assert.h> // C sty ...

  10. Wireshark 过滤 基本语法

    转载 1.过滤IP,如来源IP或者目标IP等于某个IP   例子: ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107 或者 ip.addr eq 1 ...