新聞中心
在編程中,我們經(jīng)常會(huì)遇到需要對(duì)字符串?dāng)?shù)組進(jìn)行去重的情況,這是因?yàn)樵谀承┣闆r下,我們不希望數(shù)組中存在重復(fù)的元素,如何對(duì)字符串?dāng)?shù)組進(jìn)行去重呢?本文將介紹幾種常見的方法。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括常寧網(wǎng)站建設(shè)、常寧網(wǎng)站制作、常寧網(wǎng)頁制作以及常寧網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,常寧網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到常寧省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
1、使用HashSet
HashSet是Java中的一個(gè)集合類,它不允許集合中有重復(fù)的元素,我們可以將字符串?dāng)?shù)組轉(zhuǎn)換為HashSet,然后再轉(zhuǎn)換回?cái)?shù)組,這樣就可以實(shí)現(xiàn)去重。
import java.util.Arrays;
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
String[] arr = {"apple", "banana", "apple", "orange"};
HashSet set = new HashSet<>(Arrays.asList(arr));
String[] result = set.toArray(new String[0]);
System.out.println(Arrays.toString(result));
}
}
2、使用雙重循環(huán)
雙重循環(huán)是一種簡(jiǎn)單的去重方法,通過兩層循環(huán)遍歷數(shù)組,如果發(fā)現(xiàn)有重復(fù)的元素,就將其刪除,但是這種方法的時(shí)間復(fù)雜度較高,不適用于大規(guī)模的數(shù)據(jù)。
public class Main {
public static void main(String[] args) {
String[] arr = {"apple", "banana", "apple", "orange"};
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i].equals(arr[j])) {
arr[j] = arr[arr.length 1];
arr = Arrays.copyOf(arr, arr.length 1);
j--;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
3、使用Stream API
Java 8引入了Stream API,它提供了一種簡(jiǎn)潔的數(shù)據(jù)處理方式,我們可以使用Stream的distinct方法對(duì)字符串?dāng)?shù)組進(jìn)行去重。
import java.util.Arrays;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
String[] arr = {"apple", "banana", "apple", "orange"};
String[] result = Stream.of(arr).distinct().toArray(String[]::new);
System.out.println(Arrays.toString(result));
}
}
4、使用LinkedHashSet
LinkedHashSet是HashSet的一個(gè)子類,它保留了元素的插入順序,我們可以先將字符串?dāng)?shù)組轉(zhuǎn)換為LinkedHashSet,然后再轉(zhuǎn)換回?cái)?shù)組,這樣就可以實(shí)現(xiàn)去重并保留原來的順序。
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
public class Main {
public static void main(String[] args) {
String[] arr = {"apple", "banana", "apple", "orange"};
Set set = new LinkedHashSet<>(Arrays.asList(arr));
String[] result = set.toArray(new String[0]);
System.out.println(Arrays.toString(result));
}
}
以上就是對(duì)字符串?dāng)?shù)組進(jìn)行去重的四種常見方法,每種方法都有其優(yōu)點(diǎn)和缺點(diǎn),具體使用哪種方法,需要根據(jù)實(shí)際情況來決定。
當(dāng)前標(biāo)題:string數(shù)組去重的幾種方法
本文來源:http://www.dlmjj.cn/article/cdgchie.html


咨詢
建站咨詢
