JAVA
基础课程 数组
2017-6-30
一、数组定义:
什么是数组?
程序
=
算法
+
数据结构;
所谓数据结构,简单说就是把数据按照特定的某种结构来保存。
相同数据类型元素组成的集合。
数组下标越界异常提示:
java.lang.ArrayIndexOutOfBoundsException
数组的定义:
//数组定义
//数据类型[] 数组名称;
//数据类型 数组名称[];
int[] arr;
arr = new int[5];
for(int i=0;i<arr.length;i++){
arr[i]=i;
}
int[] arr1=new int[]{1,2,3,4}; []里面不用写数字,自动分配空间
int[] arr1={1,2,3,4};
char[] arr2={'v','x'};
string[] arr3={"aaa","bbb"};
int[] arr4;
arr4=new int[]{1,2,3};
二、冒泡排序:
相邻元素之间进行比较,比较大小,如果违反规则就互换位置。
package work7;
import java.util.Arrays;
public class work7 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr={2,1,4,6,3};
for(int i=1;i<arr.length;i++){ //i 第几趟排序
for(int j=0;j<arr.length-i;j++){
if(arr[j]>arr[j+1]){ //交换值
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
三、复制数组:
System.arrayCopy
int[] a={10;20;30;40;50};
int[] a1=new int[6];
System.arrycopy(a,1,a1,0,4);
-src 复制数组
-srcPos 复制数组起始下标
-dest 目标数组
-destpos 目标数组复制起始下标
-length 复制数组长度
代码示例
Arrays.copyOf()
-original 原数组 b
-newLength 目标数组的长度
四、二维数组:
数组类型[] []数组名称 = new 数组类型[行必须指定] [];
Arrays.sort()
五、定义方法:
//方法声明
修饰词 返回值类型 方法名(参数列表){方法体}
//方法调用
//方法名称(实参列表)
public class work4 {
//方法定义
public static void print(int[] arr){
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
//变量类型 变量名称 形参 public static int sum(int num1,int num2){
return num1+num2; //返回值也是方法结束的表示
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int result=sum(1,2);
System.out.println(result);
int num1=5,num2=10;
// 需要定义一个结果收纳返回值 //实参与形参类型必须一致
int result1=sum(num1,num2);
}
}
参数列表 参数值内容传递 值地址传递
public static void print(int[] arr){
System.out.println("形参初始值:"+Arrays.toString(arr));
arr[0]=100;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr={1,2,3,4};
System.out.println("形参改变前的值:"+arr[0]);
print(arr);
System.out.println("形参改变后的值:"+arr[0]);
print(arr);
}
八种基本数据类型和String 值内容传递 形参值改变 实参值不变
其他类型 值地址传递 形参值改变 实参跟着变 数组属于其他类型 char[]属于数组引用类型
示例:
public class work5 {
public static void test(StringBuffer s,StringBuffer s2){
System.out.println(s);
System.out.println(s2);
s2=s;
s=new StringBuffer("new");
System.out.println(s);
System.out.println(s2);
s.append("haha");
s2.append("haha");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer s=new StringBuffer("good");
StringBuffer s2=new StringBuffer("bad");
test(s,s2);
System.out.println(s);
System.out.println(s2);
}
}
画图进行演示