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

本篇博客转载自qiu_lovejun998
链接地址:https://blog.csdn.net/qq_35911118/article/details/93868944

  • 1.数组删除某一个元素功能

数组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={1,2,3,4};
		arr=delete(arr,2);
		System.out.println(Arrays.toString(arr));
	}
}
  • 2.删除有重复元素的数组
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));
	}
}
  • 3.二分查找(折半查找)
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);
	}
}
  • 4.登陆注册功能:

eg: 请选择:
1 注册 2登陆 3退出
请输入账号: 111 注册成功
请选择:
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();
	}
}
发布了22 篇原创文章 · 获赞 27 · 访问量 5647

猜你喜欢

转载自blog.csdn.net/k_love1219/article/details/94575674