2017-10-27 15 views
0

私はプログラムを持っています。それは言う:別のクラスの値をhashMapに格納する方法は?

ゲストオブジェクトが構築されるたびに、最初の3つのデータがオブジェクトとしてパラメーターとしてオブジェクトに渡され、安全に保管されます。 3つのデータは、氏名、部屋番号、および部屋の価格です。私は、次のmain

Map<Integer, DoubleValue> record = new HashMap<Integer, DoubleValue>(); 

roomNumberにあり、hashMapを使用することを考えていることを行うには

は、ハッシュマップのキーです。

public class DoubleValue { 

    String fullName; 
    int roomPrice; 

    public DoubleValue(String fullName, int roomPrice){ 

     this.fullName = fullName; 
     this.roomPrice = roomPrice; 

     } 
    } 

だから、私は3つのパラメータを受け取る構築物でクラスゲストを建て: fullNameroomPriceはクラスこれは、ハッシュマップの中に2つの値を格納するためのクラスDoubleValueあるDoubleValue

から来ます。

public class Guest { 

    private String fullName; 
    private int doubleValue; //I don't know if is this is correct 


    //Constructor 
    public Guest(){ 
    } 


    public Guest(String fullName, int DoubleValue){ 
     this.fullName = fullName; 
     this.doubleValue = DoubleValue; 

    } 
... // continue with methods 
} 

さて、質問は以下のとおりです。

  1. はどのように新しいオブジェクトを作成し、 お客様のクラスを参照するキーの値を格納しますか?

    Guest customer = new Guest(key,?); 
    
  2. 値を受け入れるにはゲストがどのように必要ですか?

    パブリックユーザーレビュー(文字列のfullName、INTするDoubleValue(?))

+0

は、ハッシュマップは良いアイデアであるあなたは確かにあります? 2人のゲストが同じ部屋番号を共有する場合はどうなりますか? – Solace

+0

@ソラセ:部屋はユニークで、私はこのエクササイズを楽にしたいので、良いアイデアだと思います。合併症は後で:) – SwampThing

+0

なぜ3つのパラメータでゲストを作成しないのか分かりません。あなたがしたことと同じように、価格(または部屋番号)を追加すると、doubleValueの略語がわかりません。 – idipous

答えて

0

がよりよい解決策がありますが、以下のようにコンストラクタを持つことができHashMapのお好みで行くかもしれないが。

public Guest(String fullName, int roomNum, int roomPrice){ 
    this.fullName = fullName; 
    this.doubleValue = new DoubleValue(fullName, roomPrice); 
    record.put(roomNum, this.doubleValue); // record is your HashMap as per the question content, if its maintained in another class you may need a way to acess it or a method to put values in it. 
} 
+0

答えが良いです。私にとってそれはプラスです...;) –

0

あなたはルームやゲストでのあなたのオブジェクトを分割することができ、およびユーザーレビューの部屋を持つことができます。

import java.util.ArrayList; 
import java.util.List; 

public class Guest { 
    String fullName; 
    Room room; 

    public Guest(String fullName, Room room) { 
     this.fullName = fullName; 
     this.room = room; 
    } 

    public static void main(String[] args) { 
     List<Guest> guests = new ArrayList<Guest>(); 
     Room room324 = new Room(324, 500.45); 
     Guest guest1 = new Guest("John Smith", room324); 

     guests.add(guest1); 
    } 
} 

そして、ちょうど部屋:

public class Room { 
    int number; 
    double price; 

    public Room(int number, double price) { 
     this.number = number; 
     this.price = price; 
    } 
} 
+0

何ですか?なぜダウン投票?私は間違ったことを理解しましたか? –

+0

私はあまりにも間違っていると思っています...私の答えよりも優れています...でも、私は理由を理解しようとしています... –

+2

@ nits.kkええと...私は本当に誰かがdownvotes説明がない場合、誰かがどのように良くなるのか、説明はありませんか? –

関連する問題