数据结构(java)——数组的构建和插入
·
数组:地址连续,可以直接通过下标获取数组中的内容。(下标从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);
}
}
得到

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


所有评论(0)