【问题标题】:Passing a value/values outside of for loop to a variable - java :: processing将 for 循环之外的值/值传递给变量 - java :: 处理
【发布时间】:2015-05-30 17:01:25
【问题描述】:

我正在寻找如何将值字及其相应的计数传递到for 循环之外的变量中。我的代码目前是:

import java.util.Iterator; 
import java.util.*;


import com.google.common.collect.ImmutableMultiset; 
import com.google.common.collect.Multiset; 
import com.google.common.collect.Multisets; 

ImmutableMultiset<String> top = null;

void setup() { 
   size(800, 480); 
   smooth(); 

   String[] data = loadStrings("data/data.txt");

   ImmutableMultiset<String> myMultiset = ImmutableMultiset.copyOf(data); 

   top = Multisets.copyHighestCountFirst(myMultiset); 

   Iterator it = top.entrySet().iterator(); 

   for (int i = 0; (i < 5) && it.hasNext(); i++) { 
      Multiset.Entry entry = (Multiset.Entry) it.next(); 

      String word = (String) entry.getElement(); 
      int count = entry.getCount(); 

      System.out.println(word + " -> " + count);
   }
}

我需要将这些值应用到我的draw() 函数中的条形图。

【问题讨论】:

  • 声明循环范围之外的变量。然后它们将在循环结束后持续存在。
  • 你取前 5 个单词并计数。您想如何按照答案中的建议在 one 变量中设置它?你不需要 5 吗?
  • 是的 5 个变量或一个列表

标签: java loops for-loop processing multiset


【解决方案1】:

您可以在类中声明变量,而不是在增强循环中本地声明。

例如

private String word;
private int count;

并使用 getter 调用它们

例如

public String getWord(){ return word; }

【讨论】:

  • @Nebbyyy 没问题。将此答案标记为有帮助并玩得开心。
【解决方案2】:

为了扩展 Murat 的答案,这是一个变量范围的问题。在 for 循环块中声明的任何内容(在 {} 边界之间)将只在该块中可见。

如果你在for循环块之外声明count变量,你将能够在包含for循环的块的范围内使用它;在这种情况下,setup 方法。

Murat 的示例将允许您从任何地方获取此变量的值,无论它是在这个类中还是在某个其他类中。

【讨论】:

    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    • 2021-06-21
    • 1970-01-01
    • 2014-02-28
    相关资源
    最近更新 更多