【问题标题】:Analyze / Filter all variables without declaring each one?分析/过滤所有变量而不声明每个变量?
【发布时间】:2013-03-10 10:06:28
【问题描述】:

假设您有 70 个独立的 int 变量,并且您想分析所有这些变量并将等于 0 的任何一个设置为 1 或其他数字。

不是为每个变量写 70 个 if else 语句,你能只写一个吗?

有没有办法做这样的事情:

if("anyInt"==0){
"thatInt" = 1;}

?

(应该提到我不知道什么是“收藏”)

【问题讨论】:

  • 你可以把它们放在一个集合中,然后遍历这个集合,然后做任何你喜欢的事情
  • int 不能是 null。很抱歉吹毛求疵,但这就是原语的工作方式。

标签: java filter filtering


【解决方案1】:

如果您需要所有这些值的名称,请将它们放在 Map(这是一个集合)中:

Map<String, Integer> myMap = new HashMap<String, Integer>();

myMap.put("varname1",1); 
myMap.put("varname2",0);
myMap.put("varname3",0);
myMap.put("varname4",2);

for (Map.Entry e : myMap.entrySet())
    if (e.getValue()==0) e.setValue(null);

您将需要导入集合(即 import java.util.*;)。

整数值在 int 和 Integer 之间自动装箱和拆箱。

【讨论】:

    【解决方案2】:

    使用 int[] 然后使用 for 循环遍历它们

    int[] nums = new int[70];
    //put all your numbers in the array, i.e. nums[0] = 5;
    for(int i = 0; i < nums.length; i++){
        if(nums[i] == 0){
            //Do whatever to the number
        }
    }
    

    【讨论】:

      【解决方案3】:

      如果不了解您的代码,我会说您应该将变量放在一个 int 数组中。

      然后您将能够遍历数组并且只有一个 if 语句。

      【讨论】:

        猜你喜欢
        • 2017-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-22
        • 1970-01-01
        • 2014-09-04
        • 1970-01-01
        • 2020-04-07
        相关资源
        最近更新 更多