《黑马程序员》Java数组和排序
来源:互联网 发布:重庆大学网络缴费平台 编辑:程序博客网 时间:2024/05/18 10:03
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
一。Java数组
(1)数组中可能出现的异常 NullPointerException ArrayIndexOutofBoundsException
i)NullPointerException 代码如下:
package day02;public class TestArray { public static void main(String[] args) { int a[]=null; a[0]=1; System.out.println(a[0]); }}
控制台信息:
ii)ArrayIndexOutofBoundsException 代码如下:
package day02;public class TestArray { public static void main(String[] args) { int a[]=new int[3]; System.out.println(a[4]); }}
控制台信息:
(2)数组中获得最值得方法与打印数组方法
i)获取最大值方法代码如下:
思路:
1,获取最值需要进行比较。每一次比较都会有一个较大的值。因为该值不确定。
通过一个变量进行临储。
2,让数组中的每一个元素都和这个变量中的值进行比较。
如果大于了变量中的值,就用该该变量记录较大值。
3,当所有的元素都比较完成,那么该变量中存储的就是数组中的最大值了。
第一种手段:
public static int getMax(int[] arr) { int max = 0; for(int x=1; x<arr.length; x++) { if(arr[x]>arr[max]) max = x; } return arr[max]; }
第二种手段:
public static int getMax(int[] arr) { int max = arr[0]; for(int x=1; x<arr.length; x++) { if(arr[x]>max) max = arr[x]; } return max; }
ii)获取最小值代码如下:
public static int getMin(int[] arr) { int min = 0; for(int x=1; x<arr.length; x++){ if(arr[x]<arr[min]) min = x; } return arr[min]; }
与获取最大值两种方法类似,在此不给出。
iii)打印数组中的元素:
public static void printArray(int[] arr) { System.out.print("["); for(int x=0; x<arr.length; x++) { if(x!=arr.length-1) System.out.print(arr[x]+", "); else System.out.println(arr[x]+"]"); } }
二.相关排序方法
(1)选择排序
代码如下:
/* 选择排序。 内循环结束一次,最值出现头角标位置上。 */ public static void selectSort(int[] arr) { for (int x=0; x<arr.length-1 ; x++) { for(int y=x+1; y<arr.length; y++) { if(arr[x]>arr[y]) { /* int temp = arr[x]; arr[x] = arr[y]; arr[y]= temp; */ swap(arr,x,y); } } } }
(2)冒泡排序
代码如下:
/* 冒泡排序 */ public static void bubbleSort(int[] arr) { for(int x=0; x<arr.length-1; x++) { for(int y=0; y<arr.length-x-1; y++)//-x:让每一次比较的元素减少,-1:避免角标越界。 { if(arr[y]<arr[y+1]) { /* int temp = arr[y]; arr[y] = arr[y+1]; arr[y+1] = temp; */ swap(arr,y,y+1); } } } }
其中swap函数定义代码如下:
public static void swap(int[] arr,int a,int b)//采用静态函数,以便于类名调用 { int temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; }
三:总结与提高
Java中数组会出现两种异常,处理异常方法可以参看我近期的博客,抛异常和处理异常自定义异常等方式。本文给出了数组的排序方法,选择排序,冒泡排序。若要更多的排序方法,可以参见严蔚敏的数据结构一书。详细介绍了各个排序算法。笔者在学习中遇到了以上问题,特此希望大家注意这些基础知识点。
0 0
- 《黑马程序员》Java数组和排序
- 黑马程序员 Java基础_3 数组,数组排序和应用
- 黑马程序员_关于数组的排序和java对象
- 黑马程序员--05JAVA数组及其排序和查找
- 黑马程序员-数组排序
- 【黑马程序员】数组排序
- 黑马程序员--数组 排序
- 黑马程序员java学习— 数组的选择排序和冒泡排序
- 黑马程序员-java基础 循环和数组
- 黑马程序员--java基础--函数和数组
- 黑马程序员--------Java基础-----数组和类
- 黑马程序员---Java基础---函数和数组
- 黑马程序员--------java基础--函数和数组的常用的排序方法
- 黑马程序员——Java基础 数组排序的两种实现方法,选择和冒泡
- 黑马程序员——Java学习笔记——数组的排序和查找
- 黑马程序员-java数组
- 黑马程序员-java数组
- 黑马程序员--java数组
- 托业阅读时间怎么安排【zhasite】
- Hibernate学习笔记-----关系映射(2)单向1-1关联
- 【Android技术整理】Handler以及Handler如何实现多线程
- [7]文本输入框默认不获取焦点
- nginx+webpy+uswgi+jwplayer组合搭建流媒体服务器
- 《黑马程序员》Java数组和排序
- React学习,持续更新...
- java pdf转JPG示例
- AndroidStudio使用笔记
- codeblocks 安装
- API介绍:iBeacons、Sprite Kit、Game Center以及AirDrop等
- (一)设计模式之单例模式
- Qt 在VS下设置exe图标
- python string模块内建函数