Java對(duì)int[]數(shù)組做新增刪除去重操作代碼
Java里面對(duì)int[]數(shù)組做新增刪除去重實(shí)現(xiàn)
說明
這里記錄下使用int[]數(shù)組對(duì)數(shù)組進(jìn)行新增刪除去重等操作,用來更加了解java里面的集合類思想。如ArrayList、Set等集合。
代碼 根據(jù)索引刪除數(shù)組中的某個(gè)數(shù)據(jù)實(shí)現(xiàn)
package com.example.test;
import java.util.Arrays;
public class TestMain {
public static void main(String[] args) {
deleteList();
}
//根據(jù)索引刪除數(shù)組中的某個(gè)數(shù)據(jù)實(shí)現(xiàn)
public static void deleteList(){
//刪除數(shù)組原理,從索引位置開始將后面的元素向前移到一位,這就導(dǎo)致最后一位元素會(huì)出現(xiàn)2次,所以要新建一個(gè)數(shù)組,長度比原數(shù)組少一,然后將原數(shù)組的數(shù)據(jù)從索引0開始,到length-1復(fù)制到新數(shù)組里面實(shí)現(xiàn)元素刪除
int[] nums={34,35,36,37,38,39};
//刪除索引為2的元素,定義一個(gè)元素索引為2的下標(biāo)
int index=2;
for(int i=index;i<nums.length-1;i++){
//將后一個(gè)元素值賦值給前面一個(gè)元素
nums[i]=nums[i+1];
}
System.out.println("數(shù)據(jù)刪除后原數(shù)組數(shù)據(jù):"+Arrays.toString(nums));
//定義一個(gè)新數(shù)組,數(shù)組長度為nums1.length-1
int[] newArray=new int[nums.length-1];
//將原數(shù)組數(shù)據(jù)復(fù)制到新數(shù)組里面,最后面一位數(shù)據(jù)不要,從而實(shí)現(xiàn)元素的刪除功能
for(int i=0;i<newArray.length;i++){
newArray[i]=nums[i];
}
System.out.println("新數(shù)組數(shù)據(jù):"+Arrays.toString(newArray));
}
}執(zhí)行結(jié)果如下:

在數(shù)組中添加一個(gè)元素實(shí)現(xiàn)
package com.example.test;
import java.util.Arrays;
public class TestMain {
public static void main(String[] args) {
addList();
}
//在數(shù)組中添加一個(gè)元素實(shí)現(xiàn)
public static void addList(){
//添加數(shù)組原理,先新建一個(gè)數(shù)組,這個(gè)數(shù)組長度為原數(shù)組的長度+1,將原數(shù)組數(shù)據(jù)復(fù)制到新數(shù)組里面,在新數(shù)組里面最后面直接添加元素
int[] nums={34,35,36,37,38,39};
//添加元素值,將40添加到數(shù)組里面
int num=40;
//定義一個(gè)新數(shù)組,數(shù)組長度為nums1.length+1
int[] newArray=new int[nums.length+1];
//將原數(shù)組數(shù)據(jù)復(fù)制到新數(shù)組里面
for(int i=0;i<nums.length;i++){
newArray[i]=nums[i];
}
//直接將新元素添加到最后段
newArray[newArray.length-1]=num;
System.out.println("新數(shù)組數(shù)據(jù):"+Arrays.toString(newArray));
}
}執(zhí)行結(jié)果如下:

刪除數(shù)組里面的重復(fù)數(shù)據(jù)
package com.example.test;
import java.util.Arrays;
public class TestMain {
public static void main(String[] args) {
deleteRepeatList();
}
//刪除數(shù)組里面的重復(fù)數(shù)據(jù)
public static void deleteRepeatList(){
int[] nums={34,35,36,36,37,38,39,34,36,39};
//新建一個(gè)數(shù)組用來放未重復(fù)的元素,因?yàn)椴恢乐貜?fù)的元素個(gè)數(shù),所以數(shù)組長度與原數(shù)組長度一致
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++){
//元素的索引下標(biāo)不能相等,同一個(gè)元素判斷沒有意義
if(i!=j){
//如果后一個(gè)元素與前面的元素相等,直接結(jié)束循環(huán)
if(nums[i]==nums[j]){
//System.out.println("nums[i]="+nums[i]+",nums[j]="+nums[j]);
break;
}
}
//遍歷結(jié)束,且沒有重復(fù)元素,將這個(gè)元素放到新數(shù)組里面
if (j==newArray.length-1){
newArray[index]=nums[i];
index++;
}
}
}
System.out.println("移除重復(fù)元素后的數(shù)組值="+Arrays.toString(newArray));
System.out.println("index="+index);
//定義一個(gè)準(zhǔn)確長度的數(shù)組,用來存放未重復(fù)的數(shù)組,長度為index
int[] newArr=new int[index];
for(int i=0;i<newArr.length;i++){
newArr[i]=newArray[i];
}
System.out.println("移除數(shù)據(jù)0后的數(shù)組值="+Arrays.toString(newArr));
}
}執(zhí)行結(jié)果:

去掉數(shù)組里面的重復(fù)數(shù)據(jù),只保留一個(gè)
package com.example.test;
import java.util.Arrays;
public class TestMain {
public static void main(String[] args) {
distinctList();
}
//去掉數(shù)組里面的重復(fù)數(shù)據(jù),只保留一個(gè),順序不能保證,時(shí)間復(fù)雜度為O(n^2)
public static void distinctList(){
int[] nums={34,35,36,36,37,38,39,34,36,39};
//聲明一個(gè)變量存原數(shù)組長度
int len=nums.length;
for(int i=0;i<len;i++){
//從i的下一個(gè)元素開始遍歷
for(int j=i+1;j<len;j++){
//如果后一個(gè)元素與前面的元素相等
if(nums[i]==nums[j]){
//那么就將數(shù)組的最后一個(gè)元素值賦值給當(dāng)前重復(fù)的元素
nums[j]=nums[len-1];
//將數(shù)組長度減一,因?yàn)樽詈笠粋€(gè)元素已經(jīng)賦值給了當(dāng)前重復(fù)的元素值,所以最后一個(gè)元素沒有存在的必要了
len--;
//j自減一,讓for循環(huán)加一后再從j當(dāng)前重復(fù)的元素位置開始遍歷
j--;
}
}
}
//聲明一個(gè)新數(shù)組用來存放不重復(fù)的元素
int[] newArr = new int[len];
for (int i = 0; i < len; i++) {
newArr[i] = nums[i];
}
System.out.println("去重后的數(shù)組值="+Arrays.toString(newArr));
}
}執(zhí)行結(jié)果:

到此這篇關(guān)于Java里面對(duì)int[]數(shù)組做新增刪除去重實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)java int[]數(shù)組新增刪除去重內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于@MapperScan和@ComponentScan的使用區(qū)別
這篇文章主要介紹了@MapperScan和@ComponentScan的使用區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
SpringCloud使用spring-boot-devtools 進(jìn)行熱部署的實(shí)現(xiàn)
本文主要介紹了Spring Cloud使用spring-boot-devtools進(jìn)行熱部署,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-10-10
Springboot整合minio實(shí)現(xiàn)文件服務(wù)的教程詳解
這篇文章主要介紹了Springboot整合minio實(shí)現(xiàn)文件服務(wù)的教程,文中的示例代碼講解詳細(xì),對(duì)我們的工作或?qū)W習(xí)有一定幫助,需要的可以參考一下2022-06-06
Java并發(fā)編程之詳解ConcurrentHashMap類
在之前的文章中已經(jīng)為大家介紹了java并發(fā)編程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue、PriorityBlockingQueue、SynchronousQueue、BlockingDeque接口,本文為系列文章第八篇.需要的朋友可以參考下2021-06-06
詳解SpringMVC?HandlerInterceptor攔截器的使用與參數(shù)
本文主要介紹了詳解SpringMVC?HandlerInterceptor攔截器的使用與參數(shù),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Java如何使用Optional與Stream取代if判空邏輯(JDK8以上)
這篇文章主要給大家介紹了關(guān)于Java如何使用Optional與Stream取代if判空邏輯(JDK8以上)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

