Java对int[]数组做新增删除去重操作代码

 更新时间:2023年10月08日 14:54:25   作者:谁不想飞舞青春  
这篇文章主要介绍了Java里面对int[]数组做新增删除去重实现,这里记录下使用int[]数组对数组进行新增删除去重等操作,用来更加了解java里面的集合类思想,需要的朋友可以参考下

Java里面对int[]数组做新增删除去重实现

说明

这里记录下使用int[]数组对数组进行新增删除去重等操作,用来更加了解java里面的集合类思想。如ArrayList、Set等集合。

代码 根据索引删除数组中的某个数据实现

package com.example.test;
import java.util.Arrays;
public class TestMain {
    public static void main(String[] args) {
        deleteList();
    }
    //根据索引删除数组中的某个数据实现
    public static void deleteList(){
        //删除数组原理,从索引位置开始将后面的元素向前移到一位,这就导致最后一位元素会出现2次,所以要新建一个数组,长度比原数组少一,然后将原数组的数据从索引0开始,到length-1复制到新数组里面实现元素删除
        int[] nums={34,35,36,37,38,39};
        //删除索引为2的元素,定义一个元素索引为2的下标
        int index=2;
        for(int i=index;i<nums.length-1;i++){
            //将后一个元素值赋值给前面一个元素
            nums[i]=nums[i+1];
        }
        System.out.println("数据删除后原数组数据:"+Arrays.toString(nums));
        //定义一个新数组,数组长度为nums1.length-1
        int[] newArray=new int[nums.length-1];
        //将原数组数据复制到新数组里面,最后面一位数据不要,从而实现元素的删除功能
        for(int i=0;i<newArray.length;i++){
            newArray[i]=nums[i];
        }
        System.out.println("新数组数据:"+Arrays.toString(newArray));
    }
}

执行结果如下:

在这里插入图片描述

在数组中添加一个元素实现

package com.example.test;
import java.util.Arrays;
public class TestMain {
    public static void main(String[] args) {
        addList();
    }
    //在数组中添加一个元素实现
    public static void addList(){
        //添加数组原理,先新建一个数组,这个数组长度为原数组的长度+1,将原数组数据复制到新数组里面,在新数组里面最后面直接添加元素
        int[] nums={34,35,36,37,38,39};
        //添加元素值,将40添加到数组里面
        int num=40;
        //定义一个新数组,数组长度为nums1.length+1
        int[] newArray=new int[nums.length+1];
        //将原数组数据复制到新数组里面
        for(int i=0;i<nums.length;i++){
            newArray[i]=nums[i];
        }
        //直接将新元素添加到最后段
        newArray[newArray.length-1]=num;
        System.out.println("新数组数据:"+Arrays.toString(newArray));
    }
}

执行结果如下:

在这里插入图片描述

删除数组里面的重复数据

package com.example.test;
import java.util.Arrays;
public class TestMain {
    public static void main(String[] args) {
        deleteRepeatList();
    }
    //删除数组里面的重复数据
    public static void deleteRepeatList(){
        int[] nums={34,35,36,36,37,38,39,34,36,39};
        //新建一个数组用来放未重复的元素,因为不知道重复的元素个数,所以数组长度与原数组长度一致
        int[] newArray=new int[nums.length];
        int index=0;
        for(int i=0;i<nums.length;i++){
            for(int j=0;j<nums.length;j++){
                //元素的索引下标不能相等,同一个元素判断没有意义
                if(i!=j){
                    //如果后一个元素与前面的元素相等,直接结束循环
                    if(nums[i]==nums[j]){
                        //System.out.println("nums[i]="+nums[i]+",nums[j]="+nums[j]);
                        break;
                    }
                }
                //遍历结束,且没有重复元素,将这个元素放到新数组里面
                if (j==newArray.length-1){
                    newArray[index]=nums[i];
                    index++;
                }
            }
        }
        System.out.println("移除重复元素后的数组值="+Arrays.toString(newArray));
        System.out.println("index="+index);
        //定义一个准确长度的数组,用来存放未重复的数组,长度为index
        int[] newArr=new int[index];
        for(int i=0;i<newArr.length;i++){
            newArr[i]=newArray[i];
        }
        System.out.println("移除数据0后的数组值="+Arrays.toString(newArr));
    }
}

执行结果:

去掉数组里面的重复数据,只保留一个

package com.example.test;
import java.util.Arrays;
public class TestMain {
    public static void main(String[] args) {
        distinctList();
    }
    //去掉数组里面的重复数据,只保留一个,顺序不能保证,时间复杂度为O(n^2)
    public static void distinctList(){
        int[] nums={34,35,36,36,37,38,39,34,36,39};
        //声明一个变量存原数组长度
        int len=nums.length;
        for(int i=0;i<len;i++){
            //从i的下一个元素开始遍历
            for(int j=i+1;j<len;j++){
                //如果后一个元素与前面的元素相等
                if(nums[i]==nums[j]){
                    //那么就将数组的最后一个元素值赋值给当前重复的元素
                    nums[j]=nums[len-1];
                    //将数组长度减一,因为最后一个元素已经赋值给了当前重复的元素值,所以最后一个元素没有存在的必要了
                    len--;
                    //j自减一,让for循环加一后再从j当前重复的元素位置开始遍历
                    j--;
                }
            }
        }
        //声明一个新数组用来存放不重复的元素
        int[] newArr = new int[len];
        for (int i = 0; i < len; i++) {
            newArr[i] = nums[i];
        }
        System.out.println("去重后的数组值="+Arrays.toString(newArr));
    }
}

执行结果:

在这里插入图片描述

到此这篇关于Java里面对int[]数组做新增删除去重实现的文章就介绍到这了,更多相关java int[]数组新增删除去重内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java性能优化之代码缓存优化

    java性能优化之代码缓存优化

    这篇文章主要介绍了java性能优化之代码缓存优化,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • Java中 % 与Math.floorMod() 区别详解

    Java中 % 与Math.floorMod() 区别详解

    这篇文章主要介绍了Java中 % 与Math.floorMod() 区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Java中Switch的使用方法及新特性

    Java中Switch的使用方法及新特性

    在java中控制流程语句是由选择语句、循环语句、跳转语句构成,选择语句包括if和switch,在过多的使用if语句嵌套会使程序很难阅读,这时就可以用到switch语句,这篇文章主要给大家介绍了关于Java中Switch的使用方法及新特性的相关资料,需要的朋友可以参考下
    2023-11-11
  • IDEA中设置代码自动提示为Alt+/的具体做法

    IDEA中设置代码自动提示为Alt+/的具体做法

    很多公司都强制性要求使用Intellij IDEA,其实Intellij IDEA也确实很好用,但是一下子从Eclipse跳转到Intellij IDEA转也是需要一段时间的,为了迎合之前的习惯,就需要在Intellij IDEA中改变一些设置,如代码自动生成,本文给大家分享设置方法,感兴趣的朋友一起看看吧
    2023-01-01
  • SpringSecurity使用PasswordEncoder加密用户密码的示例代码

    SpringSecurity使用PasswordEncoder加密用户密码的示例代码

    PasswordEncoder是Spring Security库中的一个关键组件,它主要用于处理密码的安全存储和验证,本文将给大家介绍一下SpringSecurity使用PasswordEncoder加密用户密码的方法,需要的朋友可以参考下
    2024-09-09
  • IDEA报错Error running‘Application‘:Command line is too long的问题

    IDEA报错Error running‘Application‘:Command line is too lo

    这篇文章主要介绍了IDEA报错Error running ‘Application‘:Command line is too long的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Java中的BigDecimal原理详解

    Java中的BigDecimal原理详解

    这篇文章主要介绍了Java中的BigDecimal原理详解,对于日常开发过程中出现小数的问题,通常都是使用float或者double类型来处理,在java中float占用四个字节, double类型占用8个字节,需要的朋友可以参考下
    2023-09-09
  • Java中双冒号运算符(::)的用法详解

    Java中双冒号运算符(::)的用法详解

    在Java 8引入的Lambda表达式和函数式接口之后,双冒号运算符(::)成为了一项重要的功能,下面我们就来学习一下Java中的双冒号运算符及其常见应用场景吧
    2023-12-12
  • java中拼接字符串的5种方法效率对比

    java中拼接字符串的5种方法效率对比

    这篇文章主要给大家介绍了关于java中拼接字符串的5种方法效率对比的相关资料,文中通过示例代码和图片介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-01-01
  • SpringBoot详细列举常用注解的说明

    SpringBoot详细列举常用注解的说明

    在开发SpringBoot程序的过程中,有可能与其他业务系统进行对接开发,获取封装公共的API接口等等,下面这篇文章主要给大家介绍了关于SpringBoot常见的注解的相关资料,需要的朋友可以参考下
    2022-06-06

最新评论