java笔记04 基础-------数组(含大量习题)

1.数组  引用数据类型  一组数  具有相同数据类型 数据的集合
特性
(1)每一个元素的数据类型都是相同的 
(2)数组中的每一个元素都是有顺序的 
(3)所有的元素共同使用一个数组名 利用数组的名称和下标唯一对应数组元素 
(4)数组经过声明 分配内存空间  才能被使用

一维
声明 
语法:
数组的数据类型[] 数组名称
int[] arr
int arr[] 
分配内存空间
数据类型[] 数组名称=new 数据类型[长度];
int[] arr=new int[3];//声明了一个长度为3 的整型数组
数组的初始化 赋值
数组名称[下标]=初值;
数据类型[] 数组名称={元素1,元素2,元素3.....}; 
数组的属性:length 获取数组元素个数
数组遍历 
for(下标最小值;下标最大值;)
数组的最大下标 和数组元素个数 
1.冒泡排序   正序  小----大
要求:1上机能独立完成
           2.手写独立完成 


数组应该掌握  
(1)声明 分配内存空间
(2)赋值
(3)遍历  正序 倒序遍历
(4)排序   冒泡  二分 

1.sort(数组名) 二分  
2.sort(数组名,int a,int b)将数组中从a下标开始 b下标结束 排序
Arrays.sort(arr, 6,9);
3.binarySearch(数组名, 变量) 在数组中查找 变量是否存在 存在 返回该元素的下标 不存在则返回一个负数  (如果元素重复 则会返回第一个元素的下标)
Arrays.binarySearch(arr,1)
多维数组 
java中没有多维数组的概念  很多个一维数组组合在一起 构成新的数组 
二维数组
声明
数据类型[][] 数组名称
数据类型[][]  数组名=new 数据类型[行][列]
备注:高维数组必须要指定长度 分配空间 低维数组 可以不用
int[][]  arr=new int[3][]
arr[0]=new int[2]
arr[1]=new int[4]
arr[2]=new int[2]


,练习:

例1:

java笔记04 基础-------数组(含大量习题)_第1张图片

 

例2:

java笔记04 基础-------数组(含大量习题)_第2张图片 

java笔记04 基础-------数组(含大量习题)_第3张图片 

冒泡排序很重要,需要能手写出来。

例3:

java笔记04 基础-------数组(含大量习题)_第4张图片 

java笔记04 基础-------数组(含大量习题)_第5张图片 

java笔记04 基础-------数组(含大量习题)_第6张图片 

 这题很好的和面向对象进行了一个结合,可以学完面向对象再回来看这个代码。

例4:

java笔记04 基础-------数组(含大量习题)_第7张图片

 

java笔记04 基础-------数组(含大量习题)_第8张图片 

这题很好的利用了给类对象中的方法传参数。

例5:

java笔记04 基础-------数组(含大量习题)_第9张图片 

 

这题也使用了字符串的知识。以及字符串和字符的转换。

 例6:

java笔记04 基础-------数组(含大量习题)_第10张图片

java笔记04 基础-------数组(含大量习题)_第11张图片 

例7:

java笔记04 基础-------数组(含大量习题)_第12张图片 

java笔记04 基础-------数组(含大量习题)_第13张图片 

java笔记04 基础-------数组(含大量习题)_第14张图片 

例8:

java笔记04 基础-------数组(含大量习题)_第15张图片 

 java笔记04 基础-------数组(含大量习题)_第16张图片

java笔记04 基础-------数组(含大量习题)_第17张图片 

例9:

上题还有另一种做法:

java笔记04 基础-------数组(含大量习题)_第18张图片 

java笔记04 基础-------数组(含大量习题)_第19张图片 

java笔记04 基础-------数组(含大量习题)_第20张图片 

例10:

java笔记04 基础-------数组(含大量习题)_第21张图片 

java笔记04 基础-------数组(含大量习题)_第22张图片 

例11:

java笔记04 基础-------数组(含大量习题)_第23张图片 

java笔记04 基础-------数组(含大量习题)_第24张图片 

java笔记04 基础-------数组(含大量习题)_第25张图片 

java笔记04 基础-------数组(含大量习题)_第26张图片 

例12:

java笔记04 基础-------数组(含大量习题)_第27张图片 

java笔记04 基础-------数组(含大量习题)_第28张图片 

例13:

java笔记04 基础-------数组(含大量习题)_第29张图片 

java笔记04 基础-------数组(含大量习题)_第30张图片 

例14:

java笔记04 基础-------数组(含大量习题)_第31张图片 

java笔记04 基础-------数组(含大量习题)_第32张图片 

例15:

java笔记04 基础-------数组(含大量习题)_第33张图片 

 java笔记04 基础-------数组(含大量习题)_第34张图片

这里用到了数学类以及String字符串的format方法保留两位小数。

例16:

java笔记04 基础-------数组(含大量习题)_第35张图片 

java笔记04 基础-------数组(含大量习题)_第36张图片 

java笔记04 基础-------数组(含大量习题)_第37张图片 

这个题主要用到了一个封装类整型和字符串类型之间的转换。

例17:

java笔记04 基础-------数组(含大量习题)_第38张图片 

 

java笔记04 基础-------数组(含大量习题)_第39张图片 

java笔记04 基础-------数组(含大量习题)_第40张图片 

 

 例18:

java笔记04 基础-------数组(含大量习题)_第41张图片

这个代码是一种新的排序的方式:

java笔记04 基础-------数组(含大量习题)_第42张图片 

先建立数组 确认数组长度。然后写一个字符串数组 用“ ”分割,注意这里的字符串数组必须是数字和空格组成,然后把字符串数组转成整型把元素依次传递给之前创建的数组。这里是用到了Arrays.sort()方法直接进行二分排序,然后拍好序的数组再输出出来。

如果这些题都做的很熟悉了,逻辑都非常通了,就可以说是把数组部分学会了。对于javase每一部分我这里都有大量的习题,这部分就是要多多练习。数组这个章节十分重要,学好它更有利于后面对集合内容的学习和理解。

另外非常重要的一点是,大四的时候面试之前大家都会去刷很多的算法题,很多算法题都是用到了数组,以及借助数组解决的。所以数组还是必须越熟越好。这章节结束后,可以说java语言最基础的入门部分已经结束了,大家已经越过了新手村,这部分和C 语言啊,python语言啊差别不大,后面的章节就是真正java自己的内容了。 

你可能感兴趣的:(javase,java,数据结构,算法)