如何使用从另一个类或函数一个HashMap?(How do I use a HashMap from

2019-10-23 10:43发布

这里是工作的代码示例。 由于@markspace为我提供它。 这里的代码使一个HashMap,并在其中插入值。

 public class RpgPersonExample
{
   public static void main( String[] args )
   {
      Map<String, RpgPerson> team = new HashMap<>();
      team.put( "Sgt. Mayhem", new RpgPerson( 100, 10, 0 ) );
      team.put( "Wizard", new RpgPerson( 100, 1, 10 ) );
      team.put( "Dragon", new RpgPerson( 1000, 100, 100 ) );

      System.out.println( team.get( "Dragon" ) );
      System.out.println( team.get( "Wizard" ) );
   }

}

class RpgPerson
{

   private int hits;
   private int strength;
   private int magic;

   public RpgPerson( int hits, int strength, int magic )
   {
      this.hits = hits;
      this.strength = strength;
      this.magic = magic;
   }

   @Override
   public String toString()
   {
      return "RpgPerson{" + "hits=" + hits + ", strength=" +
              strength + ", magic=" + magic + '}';
   }

}

我想,虽然做的是从其它类中使用它。 如果我使用

       System.out.println( team.get( "Dragon" ) );

从main函数,它工作正常。 但是,我应该怎么做我想从另一个类做呢?

Public class Test {
     public static void example(){
         System.out.println( RpgPerson.team.get( "Dragon" ) );
     }
}

Test类不显然是不行的,但我应该怎么做,如果我想它的工作?

Answer 1:

你可以做最简单的事情被传递到示例方法引用参数Map

 public static void example(Map<String, RpgPerson> team) {
     System.out.println(team.get("Dragon"));
 }


Answer 2:

声明地图命名的team为静态类变量:

public class RpgPersonExample
{
   public static Map<String, RpgPerson> team = new HashMap<>();
   public static void main( String[] args )
   {
     // ...
   }
}

进入这样的:

 System.out.println( RpgPersonExample.team.get( "Dragon" ) );


Answer 3:

你需要一个新的类。 你可以使它看起来是这样的:

public class Team {
    private Map<String, RpgPerson> team;

    public Team() {
          team = new HashMap<String, RpgPerson>();
    }

    public void addPersonToTeam(String name, RpgPerson person) {
          team.put(name, person);
    }

    public Map<String, RpgPerson> getTeam() {
          return team;
    }
}

然后,你可以做一个新的团队,在任何你需要的类使用。



Answer 4:

如果我得到你的问题吧,你想在你的程序的其他地方使用您的HashMap中。 这很简单,可以通过声明HashMap的公共和使其成为一个类变量来实现。 现在,由于其公共and.a类变量,它可以在任何类的功能使用,或与该类的参考的帮助之外。

但是,如果你希望它在使用同一类的无效的主要,你必须将其声明为公共静态,因为静态函数只能访问静态变量。 ;如果你将它声明为静态的,你可以随便说CLASSNAME.team.get(“无所谓”)以外的任何地方使用它 希望这有助于!



文章来源: How do I use a HashMap from another class or function?