您现在的位置是:主页 > news > 网站平台建设公司/建网站费用

网站平台建设公司/建网站费用

admin2025/6/10 18:29:26news

简介网站平台建设公司,建网站费用,中国设计联盟官网,wordpress如何销售卡密目录 一、数组 1.数组的概述 1.数组的理解 2.数组相关的概念: 3.数组的特点: 4.数组的分类: 2.一维数组的初始化 3.二维数组的初始化 *4.遍历二维数组 5.不同类型的数组元素的默认初始化值 i.一维数组 ii.二维数组 6.一维数组的内存解析​ 7.数组中涉及…

网站平台建设公司,建网站费用,中国设计联盟官网,wordpress如何销售卡密目录 一、数组 1.数组的概述 1.数组的理解 2.数组相关的概念: 3.数组的特点: 4.数组的分类: 2.一维数组的初始化 3.二维数组的初始化 *4.遍历二维数组 5.不同类型的数组元素的默认初始化值 i.一维数组 ii.二维数组 6.一维数组的内存解析​ 7.数组中涉及…

目录

 

一、数组

1.数组的概述

1.数组的理解

2.数组相关的概念:

3.数组的特点:

4.数组的分类:

2.一维数组的初始化

3.二维数组的初始化

*4.遍历二维数组

5.不同类型的数组元素的默认初始化值

i.一维数组

ii.二维数组

6.一维数组的内存解析​

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

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

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

***获取随机数的方法

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

*iv. 数组元素的排序算法( 冒泡排序、快速排序)

8. Arrays工具类的使用

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


一、数组

1.数组的概述

1.数组的理解

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

2.数组相关的概念:

数组名 元素 角标、下标、索引 数组的长度:元素的个数

3.数组的特点:

1数组是序排列的 2数组属于引用数据类型的变量。

3.数组的元素,既可以是基本数据类型,也可以是引用数据类型3创建数组对象会在内存中开辟一整块连续的空间 4.数组的长度一旦确定,就不能修改。

4.数组的分类:

照维数: 一维数组、二维数组... 照数组元素的类型: 基本数据类型元素的数组、引用数据类型元素的数组

2.一维数组的初始化

数组一旦初始化,其长度就是确定的。

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

  //一维数组的初始化//动态初始化int[] Arr = new int[5];//静态初始化String[] arr = new String[]{"Tom","Mike","Lily"};
 

3.二维数组的初始化

//二维数组的初始化
//静态初始化
int[][]arr1=new int[][]{{1,2},{2,3},{3,4}};
//动态初始化
int[][]arr2 =new int[4][5];
int[][]arr3=new int[6][];

*4.遍历二维数组

   //二维数组的遍历
​int[][]arr1=new int[][]{{1,2},{2,3},{3,4}};for(int i=0;i<arr1.length;i++){for(int j=0;j<arr1[i].length;j++)System.out.println(arr1[i][j]+"\n");}

5.不同类型的数组元素的默认初始化值

i.一维数组

整型:0

浮点型:0.0

char类型:0

boolean类型:false

引用类型:null

ii.二维数组

//规定:二维数组分为外层数组的元素,内层数组的元素
int[][] arr = new int[4][3];
​
//外层元素:anr[0], arr[1]等
//内层元素:arx[0][1],anr[1][2]等
​
//数组元素的默认初始化值
//针对于初始化方式一:比如: 
int[][ ]arr = new int[4][3];
/*外层元素的初始化值为:地址值
内层元素的初始化值为:与一维数组初始化情况相同*/
//针对于初始化方式二:比如:
int[][]arr = new int[4][];
/*外层元素的初始化值为:nul1
内层元素的初始化值为:不能调用,否则报错。*/

6.一维数组的内存解析

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

1.数组元素的赋值(杨辉三角、回形数等) 2.求数值型数组中元素的最大值、最小值、平均数、总和等 3.数组的复制、反转、查找(线性查找、二分法查找) 4.数组元素的排序算法

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

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

***获取随机数的方法

  //  获取10个任意的两位数//两位数的范围是10-99 (a——b)//获取随机数的公式为:(int)(Math.random()*(b-a+1)+a);int[]arr=new int[10];
for(int i=0;i<arr.length;i++){arr[i]=(int)(Math.random()*(99-10+1)+10);
}

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

a.数组的复制

package text;
​
public class arrtext {public static void main(String[]args){//  获取10个任意的两位数//两位数的范围是10-99 (a——b)//获取随机数的公式为:(int)(Math.random()*(b-a+1)+a);int[]arr1=new int[10];for(int i=0;i<arr1.length;i++) {arr1[i] = (int) (Math.random() * (99 - 10 + 1) + 10);System.out.print(arr1[i]);}
​System.out.println("-------------");//把arr1数组赋值给arr2数组int  arr2[]=new int[arr1.length];for(int i=0;i<arr1.length;i++){arr2[i]=arr1[i];System.out.print(arr1[i]);}}
​
}

b.数组的反转

package text;
​
public class arrtext {public static void main(String[]args){String[]arr1=new String[]{"AA","BB","CC","DD","EE","FF"};for(int i=0;i<arr1.length;i++){System.out.print(arr1[i]);}System.out.println("-------------");
​//数组的反转
//        方式一: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;i++){System.out.print(arr1[i]);}
​​}
}

c.数组的查找

线性查找

字符串是否相等,不能用==直接来判断,可以使用 字符串.equals()方法

package text;
​
public class arrtext {public static void main(String[]args){String[]arr1=new String[]{"AA","BB","CC","DD","EE","FF"};for(int i=0;i<arr1.length;i++){System.out.print(arr1[i]);}System.out.println("-------------");
​String a="FF";//这里可以通过 boolean isFlag来判断循环进行等。boolean isFlag=true;for(int i=0;i<arr1.length;i++){//e属于字符串,不能直接用“=”等号,所以需要使用equalsif(a.equals(arr1[i])){System.out.print("找到了元素FF的位置,它的位置在:"+i);isFlag = false;break;}}if(isFlag) {System.out.print("没有找到了元素FF的位置");}}
}

二分法查找

package text;
​
public class arrtext {public static void main(String[] args) {int[] arr1 = new int []{1,3,5,7,9,11,13,15,17,19,21};for (int i = 0; i < arr1.length; i++) {System.out.print(arr1[i]);}System.out.println("-------------");
​int a=11;int head=0;int end=arr1.length-1;boolean isFlag=true;while(head<end){int middle=(head+end)/2;//注意这里,要比较的是arr1[middle],而不是普通的middleif(a==arr1[middle]) {System.out.println("找到要找到的元素了,他的位置是:" + middle);isFlag=false;break;}if(a<arr1[middle]){end=middle-1;}else{head=middle+1;}
}
while(isFlag){System.out.println("没有找到要找到的元素了");
}
}}

*iv. 数组元素的排序算法( 冒泡排序、快速排序)

十大排序算法

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

算法概述

算法的五大特性:

输入( input ) 输出( output ) 有穷性(有限性,Finiteness ) 确定性(明确性,Definiteness ) 可行性(有效性,Effectiveness )

冒泡排序:

算法思想:

相邻两个元素之间进行比较,每一轮都会确定一个最大的元素,一共需要比较数组长度-1轮,才能够确定最终的排序顺序。(大轮)

因为每轮都会确定一个最大的元素,所以后面已经确定的元素不用比较 ,所以这里内层的相邻元素的比较 的尾应该是数组长度-1-i(内层小轮)

package text;
​
public class arrtext {public static void main(String[] args) {int[] arr1 = new int[]{9,45,1,56,89,29,21,2,34,8};for (int i = 0; i < arr1.length; i++) {System.out.print(arr1[i]+"   ");}System.out.println("-------------");//冒泡排序//算法思想:相邻两个元素之间进行比较,每一轮都会确定一个最大的元素,一共需要比较数组长度-1轮,才能够确定最终的排序顺序//大轮循环排序for(int i=0;i<arr1.length-1;i++){//内层之间相邻两个元素进行对比//因为每轮都会确定一个最大的元素,所以后面已经确定的元素不用比较 ,所以这里内层的相邻元素的比较 的尾应该是arr1.length-1-ifor(int j=0;j<arr1.length-1-i;j++){//相邻两个元素进行比较if(arr1[j]>arr1[j+1]){int temp= arr1[j+1];arr1[j+1]=arr1[j];arr1[j]=temp;}}}for (int i = 0; i < arr1.length; i++) {System.out.print(arr1[i]+"   ");}}
}

快速排序:2的n次方

8. Arrays工具类的使用

1boolean equals(int[a,int[] b)判断两个数组是否相
2String toString(int[]a)输出数组信息。
3void fill(int[]a,int val)将指定值全部替换到数组之中。
4void sort(int[]a)对数组进行排序。
5int binarySearch(int[]a,int key)对排序后的数组进行二分法检索指定的值。
package text;
​
import java.util.Arrays;
​
public class arrtext {public static void main(String[] args) {int[] arr1 = new int[]{9,45,1,56,89,29,21,2,34,8};int[] arr2 = new int[]{1,45,9,56,89,29,21,2,34,8};
​//|  1   | boolean     equals(int[a,int[] b)    | 判断两个数组是否相                     |boolean isFlag=Arrays.equals(arr1,arr2);System.out.println(isFlag);System.out.println("——————————");
​//|  2   | String toString(int[]a)          | 输出数组信息。                         |Arrays.toString(arr1);System.out.println( Arrays.toString(arr1));System.out.println("——————————");
​//|  3   | void fill(int[]a,int val)        | 将指定值替换到数组之中。               |Arrays.fill(arr2,10);Arrays.toString(arr2);System.out.println( Arrays.toString(arr2));System.out.println ("——————————");
​//|  4   | void sort(int[]a)                | 对数组进行排序。                       |Arrays.sort(arr1);Arrays.toString(arr1);System.out.println( Arrays.toString(arr1));System.out.println ("——————————");
​//|  5   | int binarySearch(int[]a,int key) | 对排序后的数组进行二分法检索指定的值。 |int a= Arrays.binarySearch(arr1,9);//这里使用if是因为,如果数组中没有找到这个元素的位置时,就会输出负数,所以为了让大家直观地看到这种情况,我们在找不到时,进行 输出语句提示。if(a>=0){System.out.print("a元素的位置在:"+a);}else{System.out.print("该序列中没有找到该元素。");}}
}

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

1.数组角标越界的异常: ArrayIndexOutOfBounasEXcet1on

长度为[0——arr.length-1]

2.空指针异常: NullPointerException