黑马程序员-Java数组学习笔记
来源:互联网 发布:mysql 主备热切换 编辑:程序博客网 时间:2024/04/30 06:15
1、数组的定义
1)概念
同一种类型数据的集合,其实数组就是一个容器
2)数组的好处
可以给这些数据从0开始编号,方便操作这些数据
3)定义一个数组的方法
格式一:元素类型 [ ] 数组名=new 元素类型[ 元素个数或数组长度];
例如:int [ ] arr=new int [6];
格式二:元素类型 [ ] 数组名=new 元素类型[ ]{元素1,元素2 ....};
例如:int [ ] arr=new int [3]{1,2,3}; int [ ] arr={1,3,5,7};
2、对数组的遍历
如何依次打印出数组中的元素呢?数组中的每个元素都有自己的唯一的一个角标,所以可以利用for循环语句对其依次打印
代码实例:
<pre name="code" class="java">public class ArrayTest {public static void main(String args[]){int []arr={1,6,8,7,4,9};for(int x=0;x<arr.length;x++){//定义一个变量x代表数组的角标,如果x小于数组的长度,就能一直打印数组元素System.out.print(arr[x]+" ");}}}
3、输出一个数组的最大值
思路:1.要输出最大值就要对数组中的每一个元素进行比较,每一次比较都会产生一个最大值,所以需要定义一个变量来存储这个值;
2.让数组中的每一值都与这个变量的值进行比较,如果大于这个值,就将这个大值赋给这个变量;
3.当所有元素都比较完了,这个变量的值就是数组中的最大值。
代码示例:
public class ArrayTest {public static int getMax(int [] arr){int max=arr[0];//定义一个变量来存储最大值,先将数组中的某个元素的值赋给它for(int x=0;x<arr.length;x++){//定义循环语句对数组进行遍历,以此将数组中的元素与max的值进行比较if(max<arr[x])max=arr[x];//max小于某个元素,就将这个大值赋给max}return max;//最终返回的是这个数组的最大值}public static void main(String args[]){int []arr={1,6,8,7,4,9};int max=getMax(arr);System.out.println("max="+max);}}
4、将一个数组进行从小到大排序
有两种方法:选择排序法,冒泡排序法
1)选择排序法:顾名思义,就是依次进行比较,选择出这个数组的最值,并将其放在数组的首端,再利用相同的方法,选择出第二个最值,放到第二个位置,依次排序。
实现的步骤:定义一个嵌套循环,用数组中的第一个元素与后面的元素依次进行比较,如果比它大的话,就将这两个元素互换位置,然后接着用第一个元素与后面的元素比较,直到完毕
代码示例:
public class ArrayTest2 {public static void selectSort(int []a){for(int x=0;x<a.length-1;x++){/*利用嵌套循环让数组中最小角标的元素与后面的每个元素进行比较,当x循环到数组的倒数第二个元素时,数组已经排好顺序,所以让x<a.length-1*/for(int y=x+1;y<a.length;y++){/*第二个循环的作用是让第x个元素与第x+1个元素进行比较*/if(a[x]>a[y]){int temp=a[x];/*定义一个第三方变量来存储两个元素中的最大值,并将大值赋给第x+1个元素,这样第一次循环就能选择出这个数组中最小的一个元素,并将其置换到第一个位置*/a[x]=a[y];a[y]=temp;}}}}public static void main(String args[]){int []arr={8,6,4,6,2,7,16};selectSort(arr);for(int x=0;x<arr.length;x++){System.out.print(arr[x]+" ");}}}
2)冒泡排序:实现方式是把相邻两个元素进行比较,把符合条件的两个元素互换位置,然后接着比较,第一轮比较,在数组的最后一位将会是这个数组的最大值,进行第二轮
排序的时候,最后一个元素不用参与比较,要进行比较的数组元素就会少一个。
代码示例:
public class ArrayTest2 {public static void bubbleSort(int [] a){for(int x=0;x<a.length;x++){for(int y=0;y<a.length-x-1;y++){/*-x是为了让每一次比较的元素减少,-1是为了避免a[y+1]的角标越界*/if(a[y]>a[y+1]){int temp=a[y];/*定义一个变量存储两个相邻元素的最大值,然后把两个元素互换位置*/a[y]=a[y+1];a[y+1]=temp;}}}}public static void main(String args[]){int []arr={8,6,4,6,2,7,16};bubbleSort(arr);for(int x=0;x<arr.length;x++){System.out.print(arr[x]+" ");}}}
总结:通过比较的次数可以看出,这两种方法的效率都比较低,所以在实际应用中都不经常使用,Java为我们提供的一个直接排序的方法是:Arrays.sort(数组);
- 黑马程序员-Java数组学习笔记
- 黑马程序员-数组-学习笔记
- 黑马程序员:Java学习笔记---数组反射和JavaBean
- 黑马程序员------java学习笔记之数组基础
- 【黑马程序员】 学习笔记 - Java数组及排序算法
- 黑马程序员----java学习笔记之数组知识点
- 黑马程序员——学习笔记04.java数组
- 黑马程序员 Java基础学习笔记3 循环和数组
- 黑马程序员 java学习笔记——数组
- 黑马程序员——JAVA学习笔记——数组
- 黑马程序员——Java学习笔记 数组
- 黑马程序员java学习笔记——数组
- 【黑马程序员】Java学习笔记之函数与数组
- 黑马程序员——java学习笔记--数组
- 黑马程序员--JAVA学习笔记
- 黑马程序员---Java 学习笔记
- 黑马程序员_c#基础知识学习笔记:数组
- "黑马程序员"数组(Array)学习笔记
- 解题报告 之 HOJ2816 Power Line
- javascript数组、对象操作总结
- Hadoop 2.7.0 新版本发布
- 我的公开性日记
- PHP_Note.1
- 黑马程序员-Java数组学习笔记
- 快速幂取模
- Android4.4编译环境的搭建和编译
- UITableViewCell的动态计算
- Java异常处理
- 逆序打印链表
- Posts Tagged 【List 】Reorder List
- JSP小结
- FFMPEG.H264解码解析-转自雷神