目录
- 方法参数传递
- 可变参数
- 冒泡排序
- Arrays工具类
- Arrays工具类常用方法
方法参数传递
/**
* java中只有值传递
* 基本数据类型 传递的是具体的值
* 引用数据类型 传递的是地址值
*/
public class _01_ParamPass {
public static void main(String[] args) {
// 调用方法 getSum
getSum(6,9);
//调用getMax
int[] arr = {4, 5,6};
getMax(arr);
print("小王");
}
//定义一个方法 参数为基本数据类型 参数是基本数据类型
static void getSum(int a,int b){
System.out.println(a);
System.out.println(b); //打印的是具体的值
}
//定义一个方法 找到数组中最大的数字 参数是引用数据类型
static void getMax(int[] arr){
System.out.println(arr); //[I@15db9742
}
static void print(String name){ //引用数据类型
System.out.println(name); //String这个类型重写了toString方法
}
}
可变参数
/**
* 可变参数: 可以表示同种类型的0个或者多个数据
* 可变参数的本质 其实也是数组 只能作为形式参数
* 语法结构:
* 数据类型...变量名
*/
public class _02_ChangeParam {
public static void main(String[] args) {
//调用可变参数的方法,传递数组
int[] arr = {1,2,3};
getSum(arr);
//调用可变参数的正规方法,传递可变参数
getSum(1,2,4);
}
//定义一个方法 求多个数的和
static void getSum(int...param){
//定义变量 存储和
int sum = 0;
for (int i : param) {
sum += i;
}
System.out.println(sum);
}
//定义一个方法 求多个数的和(利用方法重载验证可变参数的本质就是数组)
/*static void getSum(int[] arr){
}*/
}
注意事项
/**
* 注意事项: 可变参数只能放在形参列表的末尾 可变参数只能有一个
*/
public class _03_ChangeParam2 {
public static void main(String[] args) {
// 调用
test("呵呵", 2, 4, 6, 1, 8, 9);
}
static void test(String name, int... param) {
System.out.println("多个参数的方法");
}
// 可变参数只能放在形参列表的末尾
// static void test1(int...param,String name){}
// 可变参数只能有一个
// static void test2(String...name,int...param){}
}
冒泡排序
// 对int数组进行排序
public static void sort(int[] arr) {
for (int j = 0; j < arr.length - 1; j++) {
// 单次比较
for (int i = 0; i < arr.length - 1; i++) {
// 如果前一位比后一位更大 则交换位置
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
}
Arrays工具类
/**
* java自带的类的使用说明
* 点开api文档-->点击显示-->选中索引-->输入需要查找的类名-->双击显示详情
* Arrays:
* 凡是涉及到对于数组进行操作 优先想到Arrays工具类
* 导包: 唯一确定使用哪里的类
*/
public class _04_ArraysUse {
public static void main(String[] args) {
// static void sort(int[] a) 属于Arrays
// 对指定的 int 型数组按数字升序进行排序。
int[] arr = { 21, 36, 14, 25 };
Arrays.sort(arr);
// static String toString(int[] a) 返回指定数组内容的字符串表示形式。
String str = Arrays.toString(arr);
System.out.println(str);
}
}
Arrays工具类常用方法
public class _05_ArraysUse {
public static void main(String[] args) {
//动态创建一个数组
int[] arr = new int[5];
/*arr[0] = 69;
arr[1] = 69;
arr[2] = 69;
arr[3] = 69;
arr[4] = 69;*/
//static void fill(int[] a, int val) 填充:将指定的 int值分配给指定int型数组的每个元素。
Arrays.fill(arr, 666);
//static String toString(int[] a) 返回指定数组内容的字符串表示形式。
System.out.println(Arrays.toString(arr));
int[] arr1 = { 12, 13, 14, 15 };
//static int[] copyOf(int[] original, int newLength) 复制数组:original 需要从哪里拷贝 源数组 newLength 新数组的长度
int[] arr2 = Arrays.copyOf(arr1, 2);
System.out.println(Arrays.toString(arr2));
/*static int[] copyOfRange(int[] original, int from, int to)
将指定数组的指定范围复制到一个新数组。
from指的是从哪个索引开始 to到哪里结束 但是取不到 */
int[] arr3 = Arrays.copyOfRange(arr1, 1, 2);// 1 2
System.out.println(Arrays.toString(arr3));
}
}