Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Main方法传递参数_Java_Map - Fatal编程技术网

Java 从Main方法传递参数

Java 从Main方法传递参数,java,map,Java,Map,这是我的完整代码。我的挑战在最后三行!我无法将参数(int r)发送到findColor(int r)。非常感谢您的帮助。谢谢 import java.util.*; public class NewClass { private HashMap <Character,HashSet> colorMap ; public NewClass() { colorMap = new HashMap<Character, HashSet>(); } public vo

这是我的完整代码。我的挑战在最后三行!我无法将参数(int r)发送到findColor(int r)。非常感谢您的帮助。谢谢

import java.util.*;
public class NewClass {
private HashMap <Character,HashSet> colorMap ;

public NewClass() {
    colorMap = new HashMap<Character, HashSet>();
}

public void addColor(){
    HashSet a1 = new HashSet();
    a1.add("Yellow");
    a1.add("Blue");
    a1.add("Pink");
    colorMap.put('X', a1);
    HashSet a2 = new HashSet();
    a2.add("White");
    a2.add("Brown");
    a2.add("Blue");
    a2.add("Black");
    colorMap.put('W', a2);
}    

public Set<String> findColor(int r)
{
Set<String> colors = new HashSet<String>();
    {
    for(Character m : colorMap.keySet())

    if(r < colorMap.size())
        {
        Set<String> zone = colorMap.get(m);
        System.out.println("Zone " + zone + " has more than " + r + " colors");
        }        
    }
    return colors;
 }    

 public static void main(String [] args){

    Set<String> colors;
    NewClass a = new NewClass();
    Scanner input = new Scanner(System.in);
    System.out.print("Enter a numbers \n");
    int r = input.nextInt();
    colors = findColor(r);
    a.findColor(r);      
}    
}
import java.util.*;
公共类新类{
私有HashMap-colorMap;
公共类(){
colorMap=newhashmap();
}
公共void addColor(){
HashSet a1=新的HashSet();
a1.添加(“黄色”);
a1.添加(“蓝色”);
a1.添加(“粉色”);
颜色映射。放置('X',a1);
HashSet a2=新的HashSet();
a2.添加(“白色”);
a2.添加(“棕色”);
a2.添加(“蓝色”);
a2.添加(“黑色”);
颜色映射。放置('W',a2);
}    
公共集findColor(int r)
{
Set colors=new HashSet();
{
for(字符m:colorMap.keySet())
if(r

非常感谢您的帮助。谢谢

我能说的一个问题是:

    int r = input.nextInt();
    //colors = findColor(r);
    Set<String> colors = a.findColor(r);     
int r=input.nextInt();
//颜色=findColor(r);
设置颜色=a.findColor(r);
删除第二行


findColor(int r
)不是静态方法,因此您不能直接在静态方法内部调用,您需要使用实例引用(上面代码中的第3行)。

您尝试执行的操作是从命令行读取。这样做:


最后三行中的第二行是错误的。加上a。在方法调用之前,删除第3行。

查看最后3行:

int r = input.nextInt();
colors = findColor(r);
a.findColor(r);
在第2行,您试图从静态方法调用
findColor
,但
findColor
不是静态的。这是不允许的;必须通过非静态方法所属的特定类的实例调用非静态方法

实际上,在
main
函数的作用域中有一个
NewClass
的实例,您称之为
a
。因此,只需通过该实例调用
findColor

int r = input.nextInt();
colors = a.findColor(r);

你为什么不能?您是否收到错误消息?它不编译吗?你需要更具体地说明实际的问题是什么,否则你的问题可能会被否决和关闭。谢谢!很有名。然而,它并没有像预期的那样工作!最后颜色的内容是什么?