利用Set集合去除List集合中重复元素、字符串中的重复子串

Helen ·
更新时间:2024-11-10
· 867 次阅读

Set集合特点: ① 一次只存一个元素, ② 不能存储重复的元素 ③ 存储顺序和取出来的顺序不一定一致不能存储重复的元素

可以利用②这一特点,完成去重的功能。

一:Set集合去掉List集合中重复元素 public static void main(String[] args) { //利用set集合 去除ArrayList集合中的重复元素 ArrayList list = new ArrayList(); list.add("1"); list.add("1"); list.add("2"); list.add("2"); list.add("3"); list.add("3"); list.add("4"); list.add("4"); System.out.println("去重前的List集合:"+list); Set set = new HashSet(); set.addAll(list); System.out.println("Set集合:"+set); list.clear(); // 清空原有元素 放入被list去重后的元素 list.addAll(set); System.out.println("去重后的List集合:"+list); }

运行结果:

去重前的List集合:[1, 1, 2, 2, 3, 3, 4, 4] Set集合:[1, 2, 3, 4] 去重后的List集合:[1, 2, 3, 4] 二:Set集合去掉字符串中重复子串 public static void main(String[] args) { String str = "aaab"; System.out.println("字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共 7 个"); Set set = new HashSet(); for (int step = 0; step <= str.length() - 1; step++) { //扫描全部子串 for (int begin = 0, end = 1 + step; end <= str.length(); begin++, end++) { String kid = str.substring(begin, end); //截取字符串子串 set.add(kid); //将子串放入set集合,完成去重 } } System.out.println("去除重复子串后的全部子串有:"+set.size()+"个"); System.out.println("分别是:" + set); }

运行结果:

字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共 7 个 去除重复子串后的全部子串有:7个 分别是:[aa, aaa, a, ab, b, aab, aaab]
作者:Mitsuha三葉



字符串 set集合 list 字符 set

需要 登录 后方可回复, 如果你还没有账号请 注册新账号