Java数组动态扩容和动态缩减

简介: Java数组动态扩容和动态缩减

数组动态扩容:

package com;
import java.lang.String;
import java.util.Scanner;
public class Linghu {
    public static void main(String []args){
       int arr[]={1,2,3};
        Scanner myScanner = new Scanner(System.in);
        do{
            System.out.println("请输入需要添加的元素");
           int arrNew[]=new int[arr.length+1];
            int addNum=myScanner.nextInt();
           for (int i=0;i<arr.length;i++){
               arrNew[i]=arr[i];
           }
           arrNew[arrNew.length-1]=addNum;
           arr=arrNew;
           System.out.println("=======元素输出为:");
           for (int j=0;j<arr.length;j++){
               System.out.print(arr[j]+"\t");
           }
            System.out.println("是否继续添加元素?y/n");
           char key=myScanner.next().charAt(0);
           if(key=='n') break;
       }while(true);
    }
}

数组动态缩减:

package com;
import java.lang.String;
import java.util.Scanner;
public class Linghu {
    public static void main(String []args){
      int arr[]={1,2,3};
        Scanner myScanner = new Scanner(System.in);
        do{
            //System.out.println("输入需要添加的新元素:");
          int arrNew[]= new int [arr.length-1];
          //int addNum=myScanner.nextInt();
          for (int i=0;i<arr.length-1;i++){
              arrNew[i]=arr[i];
          }
          //arrNew[arrNew.length-1]=addNum;
          arr=arrNew;//arr的指针指向arrNew
            System.out.println("缩减后的数组元素为:");
          for (int j=0;j<arr.length;j++){
              System.out.print(arr[j]+"\t");
          }
            System.out.println("是否需要缩减元素?Y/N");
          char key=myScanner.next().charAt(0);
          if(key=='n') break;
      }while(true);
    }
}


目录
相关文章
|
25天前
|
Java 索引 容器
Java ArrayList扩容的原理
Java 的 `ArrayList` 是基于数组实现的动态集合。初始时,`ArrayList` 底层创建一个空数组 `elementData`,并设置 `size` 为 0。当首次添加元素时,会调用 `grow` 方法将数组扩容至默认容量 10。之后每次添加元素时,如果当前数组已满,则会再次调用 `grow` 方法进行扩容。扩容规则为:首次扩容至 10,后续扩容至原数组长度的 1.5 倍或根据实际需求扩容。例如,当需要一次性添加 100 个元素时,会直接扩容至 110 而不是 15。
Java ArrayList扩容的原理
|
1月前
|
存储 Java 开发者
成功优化!Java 基础 Docker 镜像从 674MB 缩减到 58MB 的经验分享
本文分享了如何通过 jlink 和 jdeps 工具将 Java 基础 Docker 镜像从 674MB 优化至 58MB 的经验。首先介绍了选择合适的基础镜像的重要性,然后详细讲解了使用 jlink 构建自定义 JRE 镜像的方法,并通过 jdeps 自动化模块依赖分析,最终实现了镜像的大幅缩减。此外,文章还提供了实用的 .dockerignore 文件技巧和选择安全、兼容的基础镜像的建议,帮助开发者提升镜像优化的效果。
|
2月前
|
存储 缓存 算法
Java 数组
【10月更文挑战第19天】Java 数组是一种非常实用的数据结构,它为我们提供了一种简单而有效的方式来存储和管理数据。通过合理地使用数组,我们能够提高程序的运行效率和代码的可读性。更加深入地了解和掌握 Java 数组的特性和应用,为我们的编程之旅增添更多的精彩。
33 4
|
2月前
|
存储 缓存 算法
提高 Java 数组性能的方法
【10月更文挑战第19天】深入探讨了提高 Java 数组性能的多种方法。通过合理运用这些策略,我们可以在处理数组时获得更好的性能表现,提升程序的运行效率。
32 2
|
2月前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
|
2月前
|
存储 Java
什么是带有示例的 Java 中的交错数组?
什么是带有示例的 Java 中的交错数组?
48 9
|
2月前
|
存储 算法 Java
Java一分钟之-数组的创建与遍历
数组作为Java中存储和操作一组相同类型数据的基本结构,其创建和遍历是编程基础中的基础。通过不同的创建方式,可以根据实际需求灵活地初始化数组。而选择合适的遍历方法,则可以提高代码的可读性和效率。掌握这些基本技能,对于深入学习Java乃至其他编程语言的数据结构和算法都是至关重要的。
30 6
|
2月前
|
存储 Java 程序员
【一步一步了解Java系列】:何为数组,何为引用类型
【一步一步了解Java系列】:何为数组,何为引用类型
29 1
|
2月前
|
存储 XML Java
如何在 Java 中将常见文档转换为 PNG 图像数组
如何在 Java 中将常见文档转换为 PNG 图像数组
16 1
|
2月前
|
存储 安全 Java
Java数组(Arrays)详解
Java 中的数组是一种用于存储固定数量同类型数据的高效数据结构,支持连续内存存储和随机访问。数组可以声明并初始化,通过索引访问和修改元素,获取长度,使用循环遍历,支持多维形式,并可通过 `Arrays` 类的方法进行复制和排序。数组具有固定大小和类型安全的特点,但需注意越界等问题。灵活运用数组能显著提升编程效率。