简介
ArrayList 是 Java 中一个常用的集合框架类,用于存储元素的列表。有时,我们可能需要打印 ArrayList 中重复的值。以下是实现此功能的详细步骤:
1. 使用 HashMap
HashMap 是一个键值对的数据结构,其中键是唯一的。我们可以使用 HashMap 来存储 ArrayList 中的元素及其出现的次数。然后,我们可以遍历 HashMap 并打印出现次数大于 1 的元素。
示例:
import java.util.ArrayList;
import java.util.HashMap;
public class Example {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Orange");
list.add("Apple");
list.add("Banana");
HashMap<String, Integer> map = new HashMap<>();
for (String element : list) {
if (map.containsKey(element)) {
map.put(element, map.get(element) + 1);
} else {
map.put(element, 1);
}
}
for (String key : map.keySet()) {
if (map.get(key) > 1) {
System.out.println(key + " appears " + map.get(key) + " times.");
}
}
}
}
2. 使用 HashSet
HashSet 是一个不包含重复元素的集合。我们可以使用 HashSet 来存储 ArrayList 中的元素。然后,我们可以遍历 ArrayList 并检查每个元素是否已经存在于 HashSet 中。如果元素不存在,则将其添加到 HashSet 中。如果元素已经存在,则表示它是一个重复值,我们可以打印它。
示例:
import java.util.ArrayList;
import java.util.HashSet;
public class Example {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Orange");
list.add("Apple");
list.add("Banana");
HashSet<String> set = new HashSet<>();
for (String element : list) {
if (!set.add(element)) {
System.out.println(element + " is a duplicate.");
}
}
}
}
3. 使用 Collections.frequency() 方法
Java Collections 框架提供了 Collections.frequency()
方法,它返回指定元素在列表中出现的次数。我们可以遍历 ArrayList 并使用此方法打印出现次数大于 1 的元素。
示例:
import java.util.ArrayList;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Orange");
list.add("Apple");
list.add("Banana");
for (String element : list) {
int frequency = Collections.frequency(list, element);
if (frequency > 1) {
System.out.println(element + " appears " + frequency + " times.");
}
}
}
}
结论
有三种方法可以在 Java 中的 ArrayList 中打印重复的值:
- 使用 HashMap
- 使用 HashSet
- 使用 Collections.frequency() 方法
选择哪种方法取决于所需的功能、性能和代码简洁性。