ArrayList数组重复元素等问题解决

你知道的越多,你不知道的越多;本文仅做记录,方便以后备阅。希望也能帮到正在看这篇文章的你。

数组删除某一个元素功能

定义一个数组int arr[] = {1 5 2 4 7};删除元素2
使用Arrays.toString(arr);使其变成:1 5 4 7

代码如下:

public class Test {
	public static int search(int[] arr,int value){
		for(int i=0;i<arr.length;i++){
			if (arr[i] == value){
			return i;
			}
		}
		return -1;
	}
	public static int[] delete(int[] arr,int value){
		int index= search(arr,value);
		if (index< 0){
		return arr;
		}
		for(int i = index;i<arr.length-1;i++){
			arr[i] = arr[i+1];
		}
		arr=Arrays.copyOf(arr,arr.length-1);
		return arr;
	}
	public static void main(String[] args){
		int[]arr={1234};
		arr=delete(arr,2);
		System.out.println(Arrays.toString(arr));
	}
}

删除有重复元素的数组

定义数组int arr[] = {2,2,2,2,0};删除重复元素;

代码如下:

public class Test {
	public static int[] deleteRepeatValue(int[]arr, int value) {
	for (int i = 0; i < arr.length;) {
			if (arr[i]== value) { //数据移动
					for (int j = i; j < arr.length - 1; j++) {
						arr[j] = arr[j + 1];
					}
					arr = Arrays.copyOf(arr,arr.length - 1);
			}else{
					i++;
			}
	}
		return arr;
	}
	public static void main(String[] args){
		int[]arr={2,2,2,2,0};
		arr=deleteRepeatValue(arr,2);
		System.out.println(Arrays.toString(arr));
	}
}

二分查找(折半查找)

定义一个数组int arr[] = {1,3,5,7,9,10,15};折半查找

代码如下:

public class Test {
	public static int binaryserach(int[]arr, int value) {
		int left = 0;
		int right = arr.length-1;
		while (left<=right)
		{
			int a = (left+right)/2;
			if(arr[a]>value){
				right = a-1;
			}else if(arr[a]<value){
				left=a+1;
			}else {
				return a;
			}
		}
			return -1;
	}
	public static void main(String[] args){
		int[]arr={1,3,5,7,9,10,15};
		int a = binaryserach(arr,15);
		System.out.println(a);
	}
}

登陆注册功能实现

eg: 请选择:
1 注册 2 登陆 3 退出
请输入账号:111 注册成功
eg: 请选择:
1 注册 2 登陆 3 退出
请输入账号:111 登陆成功

代码如下:

public class Test {
	public static boolean login(int [] arr){
		System.out.println(“请输入账号:”);
		Scanner scanner = new Scanner(System.in);
		int id = scanner.nextInt();
		for (int i = 0;i<arr.length;i++){
			if (arr[i]== id){
				return true;
			}
		}
		return false;
	}
	public static boolean register(int[] arr,int size){
		System.out.println(“请输入账号:”);
		Scanner scanner = new Scanner(System.in);
		int id = scanner.nextInt();
		arr[size] = id;
		return true;
	}
	public static void operate() {
		int[]ids = new int[10];
		int size = 0;
		while(true) {
		System.out.println(1.登陆 2.注册 3.退出”);
		Scanner scanner = new Scanner(System.in);
		int choice = scanner.nextInt();
		if (choice== 3) {
			break;
		}
		switch (choice){
			case 1:
				boolean flag = login(ids);
			if (flag){
				System.out.println(“登陆成功”);
			} else {
				System.out.println(“登录失败”);
			}
				break;
			case 2:
				flag = register(ids,size);
			if (flag){
				System.out.println(“注册成功”);
			} else {
				System.out.println(“注册失败”);
			}
				break;
			}
		}
	}
	public static void main(String[] args){
		operate();
	}
}

欢迎大家评论转发,收藏!

由于水平有限,本博客难免有不足,恳请各位大佬不吝赐教!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java-云海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值