java陣列中重複元素的去重
java陣列中重複元素的去重
方式①
陣列轉集合轉陣列
方式一,我們就先說最簡單,最常用的,陣列 轉 集合 轉 陣列
public static void main(String[] args) {
//宣告一個需要去重的陣列
Object[] arr = {1,1,1,2,3,3,4,5,"夏","夏","冬","春",};
//建立一個集合
List list = new ArrayList();
//遍歷陣列往集合裡存元素
for(int i=0;i<arr.length;i++){
//如果集合裡面沒有相同的元素才往裡存
if(!list.contains(arr[i])){
list.add(arr[i]);
}
}
//toArray()方法會返回一個包含集合所有元素的Object型別陣列
Object[] newArr = list.toArray();
//遍歷輸出一下測試是否有效
for(int i=0;i<newArr.length;i++){
System.out.print(" "+newArr[i]);
}
}
list.contains方法
當list呼叫contains()方法並傳遞一個元素時,會執行遍歷,逐個對比item是否等於該元素,當遍歷結束後,如果還沒有一個元素等於該元素的值,則返回false, 否則返回true
偷懶的方法
直接使用set集合的不可重複性
//例項化一個set集合
Set set = new HashSet();
//遍歷陣列並存入集合,如果元素已存在則不會重複存入
for (int i = 0; i < arr.length; i++) {
set.add(arr[i]);
}
//返回Set集合的陣列形式
return set.toArray();
方式②
建立一個臨時陣列存放去重後的陣列
//宣告一個需要去重的陣列
Object[] arr = {1,1,1,2,3,3,4,5,"夏","夏","冬","春",};
//用來記錄去除重複之後的陣列長度和給臨時陣列作為下標索引
int t = 0;
//臨時陣列
Object[] tempArr = new Object[arr.length];
//遍歷原陣列
for(int i = 0; i < arr.length; i++){
//宣告一個標記,(賦值true,跟false區分開),並每次重置
boolean isTrue = true;
//內層迴圈將原陣列的元素逐個對比
for(int j=i+1;j<arr.length;j++){
//如果發現有重複元素,改變標記狀態並結束當次內層迴圈
if(arr[i]==arr[j]){
isTrue = false;
break;
}
}
//判斷標記是否被改變,如果沒被改變就是沒有重複元素
if(isTrue){
//沒有元素就將原陣列的元素賦給臨時陣列
tempArr[t] = arr[i];
//走到這裡證明當前元素沒有重複,那麼記錄自增
t++;
}
}
//宣告需要返回的陣列,這個才是去重後的陣列
Object[] newArr = new Object[t];
//用arraycopy方法將剛才去重的陣列拷貝到新陣列並返回
System.arraycopy(tempArr,0,newArr,0,t);
return newArr;
}
System.arrayCopy方法
public static void arraycopy
(Object src,
int srcPos,
Object dest,
int destPos,
int length)
程式碼解釋:
Object src : 原陣列
int srcPos : 從後設資料的起始位置開始
Object dest : 目標陣列
int destPos : 目標陣列的開始起始位置
int length : 要copy的陣列的長度
相關文章
- 如何去除有序陣列中的重複元素陣列
- golang 陣列去重 移除陣列指定元素Golang陣列
- iOS 模型陣列去重複iOS模型陣列
- 計蒜客 移除陣列中的重複元素陣列
- JS陣列去重 – JSON陣列去重陣列JSON
- JavaScript陣列刪除重複元素JavaScript陣列
- JavaScript 刪除陣列重複元素JavaScript陣列
- es6陣列去重複陣列
- 面試必問的陣列去重複面試陣列
- PHP陣列去除空白或重複元素PHP陣列
- 陣列去重陣列
- 陣列合並且去重&向一個陣列新增一條資料(重複的就不新增)&陣列物件去重處理陣列物件
- 陣列去重的方法陣列
- 陣列中重複的數字陣列
- JS 不使用 for forEach 獲取兩陣列中重複的元素JS陣列
- leetcode-刪除排序陣列中的重複項+移除元素LeetCode排序陣列
- JavaScript陣列去重JavaScript陣列
- 陣列物件去重陣列物件
- js陣列去重JS陣列
- JavaScript 陣列去重JavaScript陣列
- es6陣列去重(連重複的物件也可以去掉)陣列物件
- js中給陣列中物件去重JS陣列物件
- 陣列的去重和排序陣列排序
- 陣列去重和求和陣列
- 關於陣列去重陣列
- javascript之陣列去重JavaScript陣列
- js陣列物件去重JS陣列物件
- js物件陣列去重JS物件陣列
- JavaScript陣列去重方法JavaScript陣列
- JavaScript 拼接多個陣列並刪除重複元素JavaScript陣列
- 刪除排序陣列中的重複項排序陣列
- js 去掉陣列物件中的重複物件JS陣列物件
- 陣列去重的幾個方法陣列
- 陣列去重的幾種方式陣列
- JS陣列去重的實現JS陣列
- 陣列去重的幾種方法陣列
- 陣列去重Demo引出的思考陣列
- 陣列去重的六種方法陣列