首先,Set接口是Java中的一个集合接口,它继承自Collection接口,而不同于Collection接口,Set接口中的元素是不允许重复的,因为Set中的数据结构一般是使用哈希表来实现的,哈希表的特性就是保证元素的唯一性。
以下是Java如何使用Set接口存储没有重复元素的数组的完整攻略:
- 创建Set对象
我们可以使用Java中的HashSet类来创建一个Set对象,HashSet是Set接口的一个实现类,它的元素没有顺序,元素的访问速度非常快。
Set<Integer> set = new HashSet<>();
- 添加元素
使用Set的add()方法来添加元素,这里我们可以先把数组中的元素添加到Set中,Set会自动去掉重复元素,因为Set中元素的唯一性是由它添加元素时自动实现的。
int[] arr = {1, 2, 3, 1, 2, 4};
for (int i = 0; i < arr.length; i++) {
set.add(arr[i]);
}
- 遍历元素
使用for-each循环或迭代器来遍历Set中的元素。
// for-each遍历
for (Integer integer : set) {
System.out.print(integer + " ");
}
// 迭代器遍历
Iterator<Integer> iterator = set.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
示例1:存储String类型的数组
下面这个例子展示了如何将一个String类型的数组存储到Set接口中:
String[] arr = {"Java", "is", "a", "programming", "language"};
Set<String> set = new HashSet<>();
for (String s : arr) {
set.add(s);
}
System.out.println(set);
运行结果为:[Java, is, a, programming, language]
示例2:存储自定义的对象数组
下面这个例子展示了如何将一个自定义对象的数组存储到Set接口中:
class Books{
private String name;
private int price;
public Books(String name, int price) {
this.name = name;
this.price = price;
}
@Override
public String toString() {
return "Books{" +
"name='" + name + '\'' +
", price=" + price +
'}';
}
}
Books[] books = {
new Books("Java 从入门到精通", 50),
new Books("数据结构与算法", 40),
new Books("设计模式", 60),
new Books("Java Web 开发", 70),
new Books("网络编程", 30)
};
Set<Books> set = new HashSet<>();
for (Books book : books) {
set.add(book);
}
System.out.println(set);
运行结果为:
[Books{name='设计模式', price=60},
Books{name='Java 从入门到精通', price=50},
Books{name='Java Web 开发', price=70},
Books{name='数据结构与算法', price=40},
Books{name='网络编程', price=30}]
通过这两个示例,我们可以看出使用Set接口存储没有重复元素的数组非常简单,只需要创建Set对象,然后将元素依次添加到Set中即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java如何使用Set接口存储没有重复元素的数组 - Python技术站