Set<Integer> keys = tagField.keySet();怎么取keys的值
时间: 2024-05-01 18:17:08 浏览: 55
可以通过增强for循环遍历keys集合,依次取出每个元素,如下所示:
```
for (Integer key : keys) {
System.out.println(key);
}
```
或者使用迭代器遍历keys集合,依次取出每个元素,如下所示:
```
Iterator<Integer> iterator = keys.iterator();
while (iterator.hasNext()) {
Integer key = iterator.next();
System.out.println(key);
}
```
相关问题
Set<String>keys=m.keySet();作用
这段代码的作用是获取一个包含Map m中所有键的Set集合。其中,m是一个Map对象,keys是一个Set<String>类型的变量,表示存放m中所有键的Set集合。可以通过遍历keys集合来访问m中所有的键。例如:
```java
Map<String, Integer> m = new HashMap<>();
m.put("a", 1);
m.put("b", 2);
m.put("c", 3);
Set<String> keys = m.keySet();
for (String key : keys) {
System.out.println(key + " : " + m.get(key));
}
```
输出结果为:
```
a : 1
b : 2
c : 3
```
可以看到,通过遍历keys集合,可以访问Map m中所有的键,并通过m.get(key)方法获取对应的值。
public class CountReducer extends Reducer<Text, IntWritable, Text, DoubleWritable> { private DoubleWritable num = new DoubleWritable(); private Map<String,Integer> map = new HashMap<String,Integer>(); private int total = 0; // 3 {1,1,1} // 12 {1,1} protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { // 1.sum int sum = 0; for(IntWritable v : values){ sum += v.get(); } //2. total: global num total += sum; //3. put to hashmap map.put(key.toString(),sum); } protected void cleanup(Context context) throws IOException, InterruptedException { // 4. loop map Set<String> keys = map.keySet(); for(String key : keys){ //5. process the percent int value = map.get(key); double percent = value/(double)total; // 3 3 // 12 2 // 6. write to HDFS num.set(percent); context.write(new Text(key),num); } } }请解释以上代码
这是一个 MapReduce 的 Reducer 类,用于将 Mapper 阶段输出的数据进行汇总,并且计算每个月份出现的数量占比,最终将结果输出到 HDFS。
具体来说,该 Reducer 类的输入键为 Text,值为 IntWritable。输入的数据格式为月份和数量的键值对。Reducer 类的输出键为 Text,值为 DoubleWritable。输出的数据格式为月份和数量占比的键值对。
在 reduce() 方法中,首先将输入的所有数量进行求和,得到一个全局的数量 total。然后将每个月份和对应的数量存储到一个 HashMap 中。最后,在 cleanup() 方法中,遍历 HashMap 中的每个月份,计算每个月份对应的数量占总数量的比例,并将结果输出到 HDFS。
需要注意的是,在计算占比时,将数量转换为 double 类型,并且使用 DoubleWritable 类型的变量进行输出。同时,在循环遍历 HashMap 时,需要首先获取 HashMap 的键集合,并且使用键来获取对应的值。
阅读全文