arraylist如何去重
时间: 2023-06-29 19:19:57 浏览: 74
可以使用Java中的HashSet来去重。具体步骤如下:
1. 创建一个空的HashSet对象。
2. 遍历ArrayList中的所有元素,将它们添加到HashSet中。
3. HashSet会自动去重,最后将HashSet转换成ArrayList即可。
示例代码如下:
```java
ArrayList<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("A");
list.add("D");
HashSet<String> set = new HashSet<String>(list);
list.clear();
list.addAll(set);
System.out.println(list); // 输出 [A, B, C, D]
```
这样就可以去除ArrayList中的重复元素了。
相关问题
arrayList去重
在 Python 中,可以使用 set() 函数对 list 去重。但是,如果要对 list 中的自定义对象去重,则需要自定义对象的 __hash__ 和 __eq__ 方法。
示例代码:
```python
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def __hash__(self):
return hash((self.name, self.age))
def __eq__(self, other):
return self.name == other.name and self.age == other.age
students = [Student('Tom', 18), Student('Jerry', 18), Student('Tom', 20), Student('Jerry', 18)]
unique_students = list(set(students))
for student in unique_students:
print(student.name, student.age)
```
在上面的例子中,我们定义了一个 `Student` 类,包含 `name` 和 `age` 两个属性。然后,我们对 `Student` 类重写了 `__hash__` 和 `__eq__` 方法,以便于 Python 对其进行 hash 和比较操作。接着,我们创建了一个包含四个 `Student` 对象的 list,并使用 set() 函数对其进行去重。最后,我们遍历了去重后的 list,打印了每个学生的 `name` 和 `age` 属性。
需要注意的是,如果自定义对象包含可变属性,则需要额外考虑属性值的可变性对去重的影响。如果需要对 list 中的自定义对象按照某个属性进行去重,可以使用 functools 模块中的 cmp_to_key() 函数。
ArrayList 去重
可以通过 HashSet 来进行 ArrayList 的去重操作。具体步骤如下:
1. 创建一个 HashSet 对象,并将 ArrayList 中的元素逐个添加到 HashSet 中。
2. 创建一个新的 ArrayList 对象,将 HashSet 中的元素逐个添加到新的 ArrayList 中。
下面是 Java 代码示例:
```java
import java.util.ArrayList;
import java.util.HashSet;
public class ArrayListRemoveDuplicate {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(2);
list.add(4);
list.add(5);
list.add(1);
HashSet<Integer> set = new HashSet<>(list);
ArrayList<Integer> newList = new ArrayList<>(set);
System.out.println("原始 ArrayList: " + list);
System.out.println("去重后的 ArrayList: " + newList);
}
}
```
输出结果为:
```
原始 ArrayList: [1, 2, 3, 2, 4, 5, 1]
去重后的 ArrayList: [1, 2, 3, 4, 5]
```
阅读全文