方法一:直接用set去重,这里set有三种:
①TreeSet会对插入内容自然排序;
//TreeSet会对插入内容排序
TreeSet<String> data1 = new TreeSet<String>();
for(String s : str){
data1.add(s);
}
System.out.println();
System.out.print("TreeSet对字符串数组去重结果(会排序):");
for(String s : data1){
System.out.print(" " + s);
}
②HashSet输出顺序不能保证;
//HashSet根据元素的hashCode值来决定元素的存储位置,当遍历该集合时候,顺序不能保证
HashSet<String> data2 = new HashSet<String>();
for(String s : str){
data2.add(s);
}
System.out.println();
System.out.print("HashSet对字符串数组去重结果(顺序不可保证):");
for(String s : data2){
System.out.print(" " + s);
}
③LinkedHashSet以元素的添加顺序输出。
//LinkedHashSet根据元素的hashCode值来决定元素的存储位置,当遍历该集合时候,LinkedHashSet将会以元素的添加顺序访问集合的元素
LinkedHashSet<String> data3 = new LinkedHashSet<String>();
for(String s : str){
data3.add(s);
}
System.out.println();
System.out.print("LinkedHashSet对字符串数组去重结果(按输入顺序):");
for(String s : data3){
System.out.print(" " + s);
}
方法二:用arraylist去重,比较元素在list中是否已存在,不存在则加入list
//ArrayList去重
ArrayList<String> data4 = new ArrayList<String>();
for(String s : str){
if(!data4.contains(s))
data4.add(s);
}
System.out.print("ArrayList去重结果:");
for(String s : data4){
System.out.print(" " + s);
}
System.out.println();
直接上所有综合在一起的测试干货:
import java.util.ArrayList; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.TreeSet;
public class 去重 { //字符串数组去重 static void str_arr(String[] str){ System.out.print("原字符串数组:"); for(String s : str){ System.out.print(" " + s); } //TreeSet会对插入内容排序 TreeSet<String> data1 = new TreeSet<String>(); for(String s : str){ data1.add(s); } System.out.println(); System.out.print("TreeSet对字符串数组去重结果(会排序):"); for(String s : data1){ System.out.print(" " + s); } //HashSet根据元素的hashCode值来决定元素的存储位置,当遍历该集合时候,顺序不能保证 HashSet<String> data2 = new HashSet<String>(); for(String s : str){ data2.add(s); } System.out.println(); System.out.print("HashSet对字符串数组去重结果(顺序不可保证):"); for(String s : data2){ System.out.print(" " + s); } //LinkedHashSet根据元素的hashCode值来决定元素的存储位置,当遍历该集合时候,LinkedHashSet将会以元素的添加顺序访问集合的元素 LinkedHashSet<String> data3 = new LinkedHashSet<String>(); for(String s : str){ data3.add(s); } System.out.println(); System.out.print("LinkedHashSet对字符串数组去重结果(按输入顺序):"); for(String s : data3){ System.out.print(" " + s); } System.out.println(); //ArrayList去重 ArrayList<String> data4 = new ArrayList<String>(); for(String s : str){ if(!data4.contains(s)) data4.add(s); } System.out.print("ArrayList去重结果:"); for(String s : data4){ System.out.print(" " + s); } System.out.println(); } public static void main(String[] args) { //测试字符串数组去重 String[] str = {"2","1","3","1","5","2"}; str_arr(str); } }