黑马程序员JAVA基础-数组以及一些基本操作
2013-05-18 21:01
651 查看
------- android培训、java培训、期待与您交流! ----------
数组
(1)同一种类型数据的集合。其实数组就是一个容器。
A:只要是容器,就得重点掌握。
(2)数组的好处
A:可以自动给数组中的元素从0开始编号,方便操作这些元素。
(3)数组的定义格式
A:当不明确数组中的元素时
**举例 int[] arr = new int[3];
B:当明确数组中的元素时
**举例 int[] arr = new int[]{1,2,3,4,5};
arr = {1,2,3,4,5};
操作数组最常见的问题
A:当你访问到数组中的最后一个元素时,还想继续访问,这个时候,会发生角标越界异常。
**ArrayIndexOutOfBoundsException
**举例 int[] arr = new int[3];
System.out.println(arr[3]);
B:当数组不在指向某个实体时,你还继续访问,就会发生空指针异常。
**NullPointerException
**举例 int[] arr = new int[3];
arr = null;
System.out.println(arr[1]);
常见的数组的操作
记住:对数组的操作,一定要从角标下手。
A:遍历操作
**数组的属性:length 数组的长度。
**格式:数组名.length
for (int x=0;x < arr.length ;x++ ){
System.out.println("arr["+x+"]="+ arr[x]);
}
B:获取最值
**获取最大值
public static int getMax(int[] arr){
int max = arr[0];
//i从1开始,因为第一个数不用跟自己比
for(int x=1; x<arr.length; x++) {
if(arr[x]>max) {
max = arr[x];
}
}
return max;
}
**获取最小值
public static int getMin(int[] arr) {
int min = arr[0];
//i从1开始,因为第一个数不用跟自己比
for(int i=1; i<arr.length; i++) {
if(arr[i]<min){
min = arr[i];
}
}
return min;
}
C:排序
**选择排序
原理:如果拿0角标上的元素依次和后面的元素进行比较,
第一次内循环结束后,最小值出现在了0角标位置。
你就想想我们是如何打星星
****
***
**
*
public static void selectSort(int[] arr){
//i<arr.length-1 n个数两两比,n-1次就能获得最值。
for(int i=0; i<arr.length-1; i++){
//0角标元素没必要和自己比,所以j从1开始。
//发现j为了不重复比较,总是要比i大1,所以j从i+1开始
for(int j=i+1; j<arr.length; j++){
if(arr[j]<arr[i]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
**冒泡排序
原理:两个相邻元素进行比较,第一次比较完以后,最大值出现在了最大角标处。
public static void bubbleSort(int[] arr){
//i<arr.length-1 n个数两两比,n-1次就能获得最值。
for(int i=0; i<arr.length-1; i++){
//为了防止角标越界,j<arr.length-1
//为了减少比较次数,j<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;
}
}
}
}
D:传递参数
**调用的时候,传递是基本类型的值的时候,形参改变对实参没有任何影响。
**调用的时候,传递是引用类型的地址的时候,形参改变对实参有直接影响。
数组
(1)同一种类型数据的集合。其实数组就是一个容器。
A:只要是容器,就得重点掌握。
(2)数组的好处
A:可以自动给数组中的元素从0开始编号,方便操作这些元素。
(3)数组的定义格式
A:当不明确数组中的元素时
**举例 int[] arr = new int[3];
B:当明确数组中的元素时
**举例 int[] arr = new int[]{1,2,3,4,5};
arr = {1,2,3,4,5};
操作数组最常见的问题
A:当你访问到数组中的最后一个元素时,还想继续访问,这个时候,会发生角标越界异常。
**ArrayIndexOutOfBoundsException
**举例 int[] arr = new int[3];
System.out.println(arr[3]);
B:当数组不在指向某个实体时,你还继续访问,就会发生空指针异常。
**NullPointerException
**举例 int[] arr = new int[3];
arr = null;
System.out.println(arr[1]);
常见的数组的操作
记住:对数组的操作,一定要从角标下手。
A:遍历操作
**数组的属性:length 数组的长度。
**格式:数组名.length
for (int x=0;x < arr.length ;x++ ){
System.out.println("arr["+x+"]="+ arr[x]);
}
B:获取最值
**获取最大值
public static int getMax(int[] arr){
int max = arr[0];
//i从1开始,因为第一个数不用跟自己比
for(int x=1; x<arr.length; x++) {
if(arr[x]>max) {
max = arr[x];
}
}
return max;
}
**获取最小值
public static int getMin(int[] arr) {
int min = arr[0];
//i从1开始,因为第一个数不用跟自己比
for(int i=1; i<arr.length; i++) {
if(arr[i]<min){
min = arr[i];
}
}
return min;
}
C:排序
**选择排序
原理:如果拿0角标上的元素依次和后面的元素进行比较,
第一次内循环结束后,最小值出现在了0角标位置。
你就想想我们是如何打星星
****
***
**
*
public static void selectSort(int[] arr){
//i<arr.length-1 n个数两两比,n-1次就能获得最值。
for(int i=0; i<arr.length-1; i++){
//0角标元素没必要和自己比,所以j从1开始。
//发现j为了不重复比较,总是要比i大1,所以j从i+1开始
for(int j=i+1; j<arr.length; j++){
if(arr[j]<arr[i]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
**冒泡排序
原理:两个相邻元素进行比较,第一次比较完以后,最大值出现在了最大角标处。
public static void bubbleSort(int[] arr){
//i<arr.length-1 n个数两两比,n-1次就能获得最值。
for(int i=0; i<arr.length-1; i++){
//为了防止角标越界,j<arr.length-1
//为了减少比较次数,j<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;
}
}
}
}
D:传递参数
**调用的时候,传递是基本类型的值的时候,形参改变对实参没有任何影响。
**调用的时候,传递是引用类型的地址的时候,形参改变对实参有直接影响。
相关文章推荐
- 黑马程序员--Java基础学习笔记【数组操作、基本数据类型包装类】
- Java基础小知识——基本数据类型和字符串以及字节数组的转换
- 黑马程序员_java基础(数组的操作)
- 黑马程序员_java基础学习笔记03_函数以及数组知识
- Java中的移位操作以及基本数据类型转换成字节数组【收集】
- java 关于使用java1.8的localDateTime日期操作的基本使用以及一些使用技巧 持续更新...
- java基础--数组以及常用操作
- 黑马程序员JAVA基础-数组的操作
- 黑马程序员——自学笔记1(java基础概念以及基本DOS命令)
- Java基础-数组的基本操作(3)
- java常用的数组、字符串、集合操作以及数据结构与算法基本知识
- Java基础-数组的基本操作(2)
- 黑马程序员-java中关于文件的一些基本操作
- JNI中如何在本地代码C++中操作java中的基本类型的数组以及对象数组
- 黑马程序员——Java基础——String类、StringBuffer类、StringBuilder类、基本数据类型对象包装类操作、正则表达式应用
- 黑马程序员——JAVA基础---操作数组
- IOS字符串按特定字符拆分成数组和拼接以及一些基本操作
- 黑马程序员——Java基础——对象序列化、管道流、RandomAccessFile类、操作基本数据类型的流对象、字符编码
- Java中的移位操作以及基本数据类型转换成字节数组【收集】
- Java基础小知识——基本数据类型和字符串以及字节数组的转换