Arrays工具类,数组遍历,可变参数

Arrays工具类: 针对数组操作的工具类

动态扩容
动态地添加删除修改元素

1.实现数组在指定位置插入
2.删除某一个指定位置的元素

package com.sxt.arraydemo;

import java.util.ArrayList;
import java.util.Arrays;


public class ArrayDemo14 {
	
	public static void main(String[] args) {
		/*int[] arr = {11, 22, 33, 44, 55, 66};
		int[] newArray = Arrays.copyOf(arr, arr.length + 1);
		System.out.println(Arrays.toString(arr));
		System.out.println(Arrays.toString(newArray));
		newArray[arr.length] = 77;
		arr = newArray;
		System.out.println(Arrays.toString(newArray));
		System.out.println(Arrays.toString(arr));
		
		int[] srcArr = {11, 22, 33, 44, 55, 66};
		int[] destArr = new int[4];
		System.arraycopy(srcArr, 1, destArr, 0, 4);
		System.out.println(Arrays.toString(destArr));*/
		
		int[] arr = new int[]{11, 22, 33, 44, 55, 66};
		int[] arr2 = add(arr, 77);
		System.out.println(Arrays.toString(arr2));
		
		Arrays.fill(arr, 100);
		System.out.println(Arrays.toString(arr));
		Arrays.fill(arr, 2, 4, 300);
		System.out.println(Arrays.toString(arr));
	}
	
	/*
	 * 向数组中插入一个元素
	 * 返回值类型: void 
	 * 参数列表: int[] arr, int num
	 * 方法名: add
	 */
	public static int[] add(int[] arr, int num) {
		int length = arr.length;
		int[] tempArray = new int[++length];
		System.arraycopy(arr, 0, tempArray, 0, arr.length);
		tempArray[length - 1] = num;
		arr = tempArray;
		return arr;
	}
}

foreach遍历数组
foreach是集合和数组的专有遍历方式

格式:
for(元素类型 变量名 : 数组/集合){ }
通过变量名来访问元素;
foreach遍历的特点
1.简化了遍历
2.没有索引
3.底层还是使用普通for来实现

package com.sxt.arraydemo;

import java.util.Arrays;

public class ArrayDemo15 {
	public static void main(String[] args) {
		int[] arr = {11, 22, 33, 44, 55};
		
		/*// 普通for
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}*/
		
		/*System.out.println("-----------------");
		int index = 0;
		for (int i : arr) {
			System.out.println("索引: " + index + ",数值: " + i);
			index ++;
		}*/
		
		for (int i : arr) {
			System.out.println(i);
			i++;
		}
		
		/*
		 * int arr[] = {
			11, 22, 33, 44, 55
			};
			int ai[];
			int k = (ai = arr).length;
			for (int j = 0; j < k; j++)
			{
				int i = ai[j];
				System.out.println(i);
			}
		 */
	}
}
可变参数

为什么需要学习可变参数?
== 针对参数的类型确定,参数的个数不确定可以使用可变参数简化编程==

可变参数的格式
参数类型… 变量名

可变参数的特点:
1.可变参本质就是数组
2.可变参数的… 可以放在参数类型和变量名中间的任意位置
3.可变参数只能够出现在参数列表的最后

package com.sxt.arraydemo;
public class ArrayDemo16 {
	public static void main(String[] args) {
		/*System.out.println(add(10, 20));
		System.out.println(add(10, 20, 30));
		System.out.println(add(10, 20, 40, 50));*/
		System.out.println(add(10,20,30,40,50,60));
	}
	
	// 计算两个数的和
	public static int add(int a, int b) {
		return a + b;
	}
	
	public static int add(int a, int b, int c) {
		return a + b + c;
	}
	
	public static int add(int a, int b, int c, int d) {
		return a + b + c + d;
	}
	
	public static int add(int ... args) {
		// System.out.println(args);  [I@7852e922
		int sum = 0;
		for (int i : args) {
			sum += i;
		}
		return sum;
	}
	
	public static int add(float f,int ... args) {
		// System.out.println(args);  [I@7852e922
		int sum = 0;
		for (int i : args) {
			sum += i;
		}
		return sum;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值