当前位置: 首页 > news >正文

数据结构(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.5int[] 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);}
}

 得到

http://www.lryc.cn/news/472488.html

相关文章:

  • AI-CNN-验证码识别
  • React 前端框架全面教程:从入门到进阶
  • 重拾CSS,前端样式精读-布局(弹性盒)
  • Python 使用 LSTM 进行情感分析:处理文本序列数据的指南
  • MySQL:INSERT IGNORE 语句的用法
  • java模拟进程调度
  • 大模型AI在教育领域有哪些创业机会?
  • 网页上视频没有提供下载权限怎么办?
  • 【去哪里找开源商城项目】
  • ei会议检索:第二届网络、通信与智能计算国际会议(NCIC 2024)
  • vue添加省市区
  • 运维监控丨16条常用的Kafka看板监控配置与告警规则
  • ECharts饼图,配置标注示例
  • 【大象数据集】大象图像识别 目标检测 机器视觉(含数据集)
  • LN 在 LLMs 中的不同位置 有什么区别么
  • 【代码随想录Day57】图论Part08
  • 记录一次mmpretrain训练数据并转onnx推理
  • shodan5,参数使用,批量查找Mongodb未授权登录,jenkins批量挖掘
  • telnet 密码模式 访问路由器
  • 文心一言 VS 讯飞星火 VS chatgpt (380)-- 算法导论24.4 12题
  • Unity自定义数组在Inspector窗口的显示方式
  • ERC论文阅读(03)--SPCL论文阅读笔记(2024-10-29)
  • Straightforward Layer-wise Pruning for More Efficient Visual Adaptation
  • 喜讯 | 创邻科技杭州电子科技大学联合实验室揭牌成立!
  • 海外媒体发稿:如何打造媒体发稿策略
  • PyTorch模型保存与加载
  • CH569开发前的测试
  • MySQL中表的外连接和内连接
  • Ubuntu 上安装 Redmine 5.1 指南
  • 从变量的角度理解 Hooks , 变得更简单了