首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[教程]告别冗余!Java轻松实现字符串去重,告别重复烦恼

发布于 2025-06-19 21:19:22
0
6

在Java编程中,字符串去重是一个常见的需求。无论是为了提高数据质量,还是为了优化存储空间,去除重复的字符串都是很有必要的。本文将介绍几种在Java中实现字符串去重的方法,帮助您轻松告别重复烦恼。方法...

在Java编程中,字符串去重是一个常见的需求。无论是为了提高数据质量,还是为了优化存储空间,去除重复的字符串都是很有必要的。本文将介绍几种在Java中实现字符串去重的方法,帮助您轻松告别重复烦恼。

方法一:使用HashSet

HashSet是一个不允许重复元素的集合类,它基于HashMap实现,可以非常方便地去除字符串中的重复项。

1.1 创建HashSet

首先,我们需要创建一个HashSet实例来存储去重后的字符串。

import java.util.HashSet;
import java.util.Set;
public class StringDuplicateRemoval { public static void main(String[] args) { String input = "apple, banana, apple, orange, banana, apple"; Set uniqueStrings = new HashSet<>(); // ... }
}

1.2 添加字符串到HashSet

接下来,我们将输入字符串的每个单词添加到HashSet中。由于HashSet不允许重复元素,自动去重。

public class StringDuplicateRemoval { public static void main(String[] args) { String input = "apple, banana, apple, orange, banana, apple"; Set uniqueStrings = new HashSet<>(); String[] words = input.split(", "); for (String word : words) { uniqueStrings.add(word); } // ... }
}

1.3 输出去重后的字符串

最后,我们可以遍历HashSet来输出去重后的字符串。

public class StringDuplicateRemoval { public static void main(String[] args) { String input = "apple, banana, apple, orange, banana, apple"; Set uniqueStrings = new HashSet<>(); String[] words = input.split(", "); for (String word : words) { uniqueStrings.add(word); } for (String uniqueString : uniqueStrings) { System.out.println(uniqueString); } }
}

方法二:使用LinkedHashSet

LinkedHashSet是HashSet的子类,它不仅具有去重功能,而且还保留了元素的插入顺序。

2.1 创建LinkedHashSet

首先,我们需要创建一个LinkedHashSet实例。

import java.util.LinkedHashSet;
import java.util.Set;
public class StringDuplicateRemoval { public static void main(String[] args) { String input = "apple, banana, apple, orange, banana, apple"; Set uniqueStrings = new LinkedHashSet<>(); // ... }
}

2.2 添加字符串到LinkedHashSet

添加字符串到LinkedHashSet的过程与HashSet相同。

public class StringDuplicateRemoval { public static void main(String[] args) { String input = "apple, banana, apple, orange, banana, apple"; Set uniqueStrings = new LinkedHashSet<>(); String[] words = input.split(", "); for (String word : words) { uniqueStrings.add(word); } // ... }
}

2.3 输出去重并保留顺序的字符串

遍历LinkedHashSet来输出去重且保留顺序的字符串。

public class StringDuplicateRemoval { public static void main(String[] args) { String input = "apple, banana, apple, orange, banana, apple"; Set uniqueStrings = new LinkedHashSet<>(); String[] words = input.split(", "); for (String word : words) { uniqueStrings.add(word); } for (String uniqueString : uniqueStrings) { System.out.println(uniqueString); } }
}

方法三:使用ArrayList和contains方法

如果对集合类的性能要求不高,我们可以使用ArrayList和contains方法来实现字符串去重。

3.1 创建ArrayList

首先,创建一个ArrayList来存储字符串。

import java.util.ArrayList;
import java.util.List;
public class StringDuplicateRemoval { public static void main(String[] args) { String input = "apple, banana, apple, orange, banana, apple"; List uniqueStrings = new ArrayList<>(); // ... }
}

3.2 添加字符串到ArrayList

对于每个字符串,我们检查它是否已经存在于ArrayList中。如果不存在,则添加到ArrayList中。

public class StringDuplicateRemoval { public static void main(String[] args) { String input = "apple, banana, apple, orange, banana, apple"; List uniqueStrings = new ArrayList<>(); String[] words = input.split(", "); for (String word : words) { if (!uniqueStrings.contains(word)) { uniqueStrings.add(word); } } // ... }
}

3.3 输出去重后的字符串

遍历ArrayList来输出去重后的字符串。

public class StringDuplicateRemoval { public static void main(String[] args) { String input = "apple, banana, apple, orange, banana, apple"; List uniqueStrings = new ArrayList<>(); String[] words = input.split(", "); for (String word : words) { if (!uniqueStrings.contains(word)) { uniqueStrings.add(word); } } for (String uniqueString : uniqueStrings) { System.out.println(uniqueString); } }
}

总结

以上介绍了三种在Java中实现字符串去重的方法。根据实际需求,您可以选择最适合您的方法。HashSet和LinkedHashSet提供了高效的去重功能,而ArrayList和contains方法则适用于对性能要求不高的场景。希望本文能帮助您轻松解决字符串去重的问题。

评论
一个月内的热帖推荐
csdn大佬
Lv.1普通用户

452398

帖子

22

小组

841

积分

赞助商广告
站长交流