写出一段算法,用于对字符串数组进行去重,要求尽量简洁
举例:
* 输入:
* {"cc","dd","aa","cc","gg","dd","ee"}
* 输出:
* {"cc","dd","aa","gg","ee"}
ArrayList去重
通过list.contains()方法
/**
* 通过list.contains()方法
*
* @param arrays
* @return
*/
public static String[] dealContains(String[] arrays) {
ArrayList arrayList = new ArrayList();
for (int i = 0; i < arrays.length; i++) {
String array = arrays[i];
if (!arrayList.contains(array)) {
arrayList.add(array);
}
}
String[] b = (String[]) arrayList.toArray(new String[arrayList.size()]);
return b;
}
Set去重
TreeSet对字符串数组去重并排序
/**
* TreeSet对字符串数组去重并排序
*
* @param arrays
* @return
*/
public static String[] dealTreeSet(String[] arrays) {
TreeSet<String> set = new TreeSet<String>();
for (String s : arrays) {
set.add(s);
}
return set.toArray(new String[0]);
}
HashSet根据元素的hashCode值来决定元素的存储位置
/**
* HashSet根据元素的hashCode值来决定元素的存储位置
* 顺序不能保证
*
* @param arrays
* @return
*/
private static String[] dealHashSet(String[] arrays) {
HashSet<String> hashSet = new HashSet<String>();
for (String s : arrays) {
hashSet.add(s);
}
return hashSet.toArray(new String[0]);
}
LinkedHashSet以元素的添加顺序输出
/**
* LinkedHashSet根据元素的hashCode值来决定元素的存储位置
* 以元素的添加顺序访问集合的元素
*
* @param arrays
* @return
*/
private static String[] dealLinkedHashSet(String[] arrays) {
LinkedHashSet<String> linkedHashSet = new LinkedHashSet<String>();
for (String s : arrays) {
linkedHashSet.add(s);
}
return linkedHashSet.toArray(new String[0]);
}