Java数组(有序数组和无序数组)之增删改查操作

数组:数组存储具有相同数据结构的元素集合,一维数组占有一块内存空间,数组一旦占用存储空间(连续),其地址和容量就是确定的,不能改变。

下面是详细的代码和实现结果:

package array;

import java.util.ArrayList;
import java.util.List;

public class array {
		public static List<Integer> Search(int [] x,int value) {
			List list = new  ArrayList<>();
			if(x.length!=0) {
				for(int i = 0;i<x.length;i++) {
					if(x[i] == value) { 
						list.add(i);
					}
				}
				return list;
			}
			return null;
		}
		// 1 2  4 5
		public static int[] insert(int [] x,int value) {
			if(x.length!=0) {
				int [] xx = new int [x.length+1];
				int index = x.length - 1;
				int i ;
				for(i = 0;i<x.length;i++) {
					if(x[i]<=value) {
						xx[i] = x[i];  
					}
					else {
						xx[i] = value;
						break;
					}
				}
				i--;
				for(int j = i+1;j<xx.length;j++) {
					System.out.println("");
					if(i == x.length -1 ) {
						xx[j] = value;
					}else {
						System.out.println(2222);
						xx[j] = x[j-1];
						}
				}
				return xx;
			}
			return null;
		}
		
		public static int add(int[]x,int value,int size) {
			if(x.length!=0) {
				x[size] = value;
				size++;
			}
			return size;
		}
		// 1 2  3 4 5 6 7 8 
		// 2  1 4 8 4 3 2 6                     2 4 
		public static int delete(int []x,int value,int size) {
			if(x.length!=0) {
				if(Search(x,value)!=null) {
					List<Integer> list = Search(x,value);
					int index = 0;
					for(int i = 0;i<size;i++) {
						for(int j = 0;j<list.size();j++) {
							if(i == list.get(j)-index) {
								for(int k = i;k<size;k++) {
									x[k] = x[k+1];
								}
								index++;
								size--;
							}
						}
					}
				}
				return size;
			}
			return 0;
		}
		public static void update (int []x,int pre,int value) {
			if(x.length!=0) {
				if(Search(x,pre)!=null) {
				List<Integer> list = Search(x,pre);
				for(int i =0;i<x.length;i++) {
					for(int j = 0;j<list.size();j++) {
						if(i == list.get(j)) {
							x[i] = value;
						}
					}
				}
				}
			}
		}
		
		//  6 2 3 4 5 6 7 8 9 0 0 0 
		public static void update1 (int []x,int pre,int value,int size) {
			if(x.length!=0) {
				if(Search(x,pre)!=null) {
					List<Integer> list = Search(x,pre);
					for(int i = 0;i<size;i++) {
						for(int j =0;j<list.size();j++) {
							if(i == list.get(j)) {
								x[i] = value;
								FastSortSelf fast = new FastSortSelf();
								fast.sort(x, 0, size-1);
								}
							}
						}
					}
				}
			}
		
		public static void main(String[] args) {
			int SIZE = 10;
			int [] wuxu = new int[20];
			wuxu[0] = 3;
			wuxu[1] = 1;
			wuxu[2] = 2;
			wuxu[3] = 6;
			wuxu[4] = 3;
			wuxu[5] = 4;
			wuxu[6] = 7;
			wuxu[7] = 4;
			wuxu[8] = 8;
			wuxu[9] = 3;
			System.out.print("无序数组删除之前的数组为          ");
			for(int i = 0;i<SIZE;i++) {
				System.out.print(wuxu[i]+"..");
			}
			System.out.println();
			int delsize = delete(wuxu,3,SIZE);
			System.out.print("无序数组删除3之后有 :"+delsize +"个元素,分别是:");
			update(wuxu,6,66);
			for(int i = 0;i<delsize;i++) {
				System.out.print(wuxu[i]+"..");
			}
			System.out.println();
			int [] order = new int [SIZE];
			System.out.print("定义一个有序数组:");
			for(int i = 0;i<SIZE;i++) {
				order[i] = i+1;
				System.out.print(order[i]+",");
			}
			int [] s = insert(order,11);
			System.out.println("有序数组插入数据后的长度是"+s.length);
			for(int i = 0;i<s.length;i++) {
				System.out.print(s[i]+",");
			}
			System.out.println();
			update1(order,4,44,SIZE);
			
			System.out.println("有序数组更改4为44之后:");
			for(int i = 0;i<SIZE;i++) {
				System.out.print(order[i]+",");
			}
			int [] unorder = new int [20];
			for(int i = 0;i<SIZE;i++) {
				unorder[i] = (int) (Math.random()*10);
			}
			System.out.println();
			SIZE = add(unorder,6,SIZE);
			System.out.println("无需随机数组添加一个元素之后有"+SIZE+"个元素");
			System.out.print("无需数组: ");
			for(int i = 0;i<SIZE;i++) {
				System.out.print(unorder[i]+",");
			}
			System.out.println();
			List list = Search(order,9);
			System.out.print("有序数组中有:"+list.size()+" 个 9,它的下标是:");
			for(int i = 0;i<list.size();i++) {
				System.out.println(list.get(i)+",");
			}
			List list1 = Search(unorder, 5);
			System.out.print("无序随机数组查询的长度是"+list1.size()+"它们的下标分别是:");
			for(int i = 0;i<list1.size();i++) {
				System.out.print(list1.get(i)+",");
			}
			System.out.println();
		    for(int i = 0;i<order.length;i++) {
		    	System.out.print(order[i]+",,");
		    }
		}
}
结果显示:
无序数组删除之前的数组为          3..1..2..6..3..4..7..4..8..3..
无序数组删除3之后有 :7个元素,分别是:1..2..66..4..7..4..8..
定义一个有序数组:1,2,3,4,5,6,7,8,9,10,
有序数组插入数据后的长度是11
1,2,3,4,5,6,7,8,9,10,11,
有序数组更改4为44之后:
1,2,3,5,6,7,8,9,10,44,
无需随机数组添加一个元素之后有11个元素
无需数组: 1,1,6,0,5,5,7,2,8,7,6,
有序数组中有:1 个 9,它的下标是:7,
无序随机数组查询的长度是2它们的下标分别是:4,5,
1,,2,,3,,5,,6,,7,,8,,9,,10,,44,,

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值