Java基礎之字串陣列Array進行去重
阿新 • • 發佈:2018-11-08
寫出一段演算法,用於對字串陣列進行去重,要求儘量簡潔
舉例:
* 輸入:
* {"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]);
}