使用 TreeSet 的迭代器 Iterator 进行遍历,调用 Iterator 的 hasNext() 和 next() 方法,依次获取每个元素。请给我举个例子
时间: 2024-05-14 14:15:56 浏览: 118
好的,以下是一个使用 TreeSet 迭代器 Iterator 进行遍历的代码示例:
```java
TreeSet<Integer> set = new TreeSet<Integer>();
set.add(2);
set.add(1);
set.add(3);
Iterator<Integer> iterator = set.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
```
代码执行结果为:
```
1
2
3
```
在这个例子中,我们使用 TreeSet 存储了3个整数,并使用迭代器 Iterator 遍历这个 TreeSet,依次输出每个元素的值。在遍历的过程中,我们使用了 hasNext() 和 next() 方法来获取每个元素。
相关问题
编写程序,随机生成20个两位整数,将它们分别添加到HashSet对象和TreeSet 对象中 (1)使用增强的for循环访问集合中的每个元素。 (2)使用Iterator迭代器访问集合中的每个元素。为什么集合中的元素不是20个?
在编写程序时,首先需要创建两个集合,一个是HashSet(无序且不允许有重复元素),另一个是TreeSet(有序且不允许有重复元素)。以下是生成20个随机两位整数并将其添加到这两个集合中的示例:
```java
import java.util.*;
public class CollectionsExample {
public static void main(String[] args) {
Random random = new Random();
HashSet<Integer> hashSet = new HashSet<>();
TreeSet<Integer> treeSet = new TreeSet<>();
for (int i = 0; i < 20; i++) {
int randomInt = random.nextInt(99) + 10; // 生成10-99之间的随机数
hashSet.add(randomInt);
treeSet.add(randomInt);
}
// 使用增强的for循环访问集合中的每个元素
System.out.println("HashSet:");
for (Integer num : hashSet) {
System.out.print(num + " ");
}
// 使用Iterator迭代器访问集合中的每个元素
System.out.println("\nTreeSet:");
Iterator<Integer> treeSetIterator = treeSet.iterator();
while (treeSetIterator.hasNext()) {
System.out.print(treeSetIterator.next() + " ");
}
// 集合中的元素数量通常会等于添加的数量(20个),除非有重复值或某些操作导致元素删除
System.out.println("\nNumber of elements in HashSet: " + hashSet.size());
System.out.println("Number of elements in TreeSet: " + treeSet.size());
}
}
```
当运行这个程序时,HashSet和TreeSet通常会各有20个元素,因为HashSet不保证元素顺序,而TreeSet会保持排序。如果出现元素数量不等于20的情况,那可能是由于随机生成的数字中有重复值,或者在操作过程中发生了意外的元素删除。
Java实现 利用set对象存储数据, (1) 编写程序,随机生成20个一位数,将它们分别添加到HashSet对象和TreeSet对象中。 (2) 使用增强的for循环访问集合中的每个元素 (3) 使用Iterator迭代器访问集合中的每个元素。
这是一个关于Java set对象存储数据的问题,属于技术问题范畴,我可以回答。以下是代码:
```java
import java.util.HashSet;
import java.util.Iterator;
import java.util.TreeSet;
public class SetExample {
public static void main(String[] args) {
HashSet<Integer> hashSet = new HashSet<>();
TreeSet<Integer> treeSet = new TreeSet<>();
// 随机生成20个一位数
for (int i = 0; i < 20; i++) {
int num = (int) (Math.random() * 10);
hashSet.add(num);
treeSet.add(num);
}
// 使用增强的for循环访问集合中的每个元素
System.out.println("HashSet元素:");
for (Integer num : hashSet) {
System.out.print(num + " ");
}
System.out.println();
System.out.println("TreeSet元素:");
for (Integer num : treeSet) {
System.out.print(num + " ");
}
System.out.println();
// 使用Iterator迭代器访问集合中的每个元素
System.out.println("HashSet元素:");
Iterator<Integer> iterator = hashSet.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
System.out.println();
System.out.println("TreeSet元素:");
iterator = treeSet.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
System.out.println();
}
}
```
这个程序可以随机生成20个一位数,并将它们分别添加到HashSet对象和TreeSet对象中。然后使用增强的for循环和迭代器访问集合中的每个元素。
阅读全文