数组:地址连续,可以直接通过下标获取数组中的内容。(下标从0开始)

新建的数组都有默认值

//创建数组
	//Java是强类型 数组必须声明类型
	//以下是三种创建数组的方式 
	int[] arr= {2,23,55,12,34,53};
	int[] brr=new int[5];
	int[] crr=new int[] {20,70,34};		

(注意:arr不是基础类型,不能被直接打印)

    //自己写的打印方法
	System.out.print("[");
	for(int i=0;i<arr.length;i++) {
		if(i==arr.length-1) {
			System.out.print(arr[i]);
		}else {
			System.out.print(arr[i]+",");
		}
	}
	System.out.print("]");
	
	//java自己封装的打印数组的方法
	System.out.println(Arrays.toString(arr));

当然也可以自己封装打印的方法

//自己封装方法
		show(arr);
		public static void show(int arr[]) {
		System.out.print("[");
		for(int i=0;i<arr.length;i++) {
			if(i==arr.length-1) {
				System.out.print(arr[i]);
			}else {
				System.out.print(arr[i]+",");
			}
		}
		System.out.print("]");
	}

数组长度不可变,但Java实现了可变数组。ArrayList类实现

原理:数组长度不够时,扩容原理:新建一个比原数组长度长的新数组 (大小约为原数组的1.5倍),遍历原来数组存入新数组(在Java中旧数组的内存会被自动回收)

int[] brr=new int[arr.length+1];
		for(int j=0;j<arr.length;j++) {
			brr[j]=arr[i]
		}
		arr=brr;
		arr[3]=50;

数组插入(尾插)设一个size游标,记录数组长度

插入之前要先判断数组当中是否有位置。即判断size是否和数组的长度相等,相等则满,需要扩容

 

 我们将以上几个知识点穿起来,写一个数组的插入打印

package 数据结构;

import com.sun.jdi.connect.spi.TransportService.Capabilities;

public class ArrayList {
	

	int size=0;//记录当前数组的个数
	int capacity=10;//记录数组容量
	double factor=1.5;//因数 1.5
	int[] arr=new int[capacity];
	//插入
	public void add(int element) {
		if(size==capacity) {
			capacity=(int) (capacity*factor);
			
			int[] brr=new int[capacity];
			for(int i=0;i<arr.length;i++) {
				brr[i]=arr[i];
			}
			arr=brr;
		}
		arr[size]=element;
		size++;
	}
	
	public String toString() {
		String res="[";
		for(int i=0;i<size;i++) {
			if(i==size-1) {
				res+=arr[i];
			}else {
				res+=arr[i]+", ";
			}
		}
		res+="]";
		return res;
	
	}



}

在test类中调用这个方法。

package 数据结构;

import java.util.Arrays;

public class test {
	public static void main(String[] args) {
		ArrayList list=new ArrayList();
		list.add(18);
		list.add(29);
		list.add(34);
		list.add(43);
		list.add(54);
		list.add(11);
		list.add(23);
		list.add(21);
		list.add(74);
		list.add(95);
		list.add(122);
		list.add(218);
		list.add(33);
		System.out.println(list);
	}
}

 得到

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐