このプロジェクトでは(私は初心者のようにBlueJを使用しています)、Climbersを名前、性別、年齢とともにArrayListに追加したいと考えています。登山家は、登山した山を追加することができます。山の名前と高さ。ArrayListから最大値を返すためにオブジェクトを比較する必要があります
特定の登山家が登った山のうち最も高い山を返すために、登山者クラスにメソッドを追加する必要があります。メソッドを定義するには
私は比較することが山のクラスのオブジェクトを確認する方法として、わからないよ、それは
public ArrayList<Mountain> getHighestMountain(Mountain mountainHeight)
を使用して定義します。参考までに比較キーワードはまだ学習されていないので、これを使用しないことをお勧めします。
クラブクラス:
import java.util.ArrayList;
import java.util.Scanner;
/**
* Write a description of class Club here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Club
{
// An ArrayList for storing climber details.
private ArrayList<Climber> climbers;
/**
* Constructor for objects of class Club
*/
public Club()
{
// Initialise instance variables.
climbers = new ArrayList<Climber>();
}
public void addClimber(Climber newName)
{
climbers.add(newName);
}
public Climber getClimber(String name)
{
Climber foundClimber = null;
int index = 0;
boolean searching = true;
while(searching && index < climbers.size()) {
Climber climber = climbers.get(index);
if(climber.getName().equals(name)) {
searching = false;
foundClimber = climber;
}
else {
System.out.println(name + " not found");
index++;
}
}
return foundClimber;
}
public void displayClimberList()
{
for (int item = 0; item<climbers.size();
item++) {
Climber climber = climbers.get(item);
System.out.println(climber.getName() + (" ") + climber.getAge() + (" ")
+ climber.getGender());
}
}
}
クライマークラス:
import java.util.ArrayList;
/**
* Write a description of class Climber here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Climber
{
// Instance variables.
// The climber name.
private String name;
// The climber age
private int age;
// The climber gender.
private String gender;
private ArrayList<Mountain> mountains;
/**
* Constructor for objects of class Climber
*/
public Climber (String newName, int newAge, String newGender)
{
// Initialise instance variables.
name = newName;
age = newAge;
gender = newGender;
mountains = new ArrayList<Mountain>();
}
/**
* Accessor method for climber's name.
*/
public String getName()
{
return name;
}
/**
* Set the climber's name.
*/
public void setName(String newName)
{
name = newName;
}
/**
* Accessor method for climber's age.
*/
public int getAge()
{
return age;
}
/**
* Set the climber's age.
*/
public void setAge(int newAge)
{
age = newAge;
}
/**
* Set the climer's gender.
*/
public String getGender()
{
return gender;
}
/**
* Accessor method for climber's gender.
*/
public void getGender(String newGender)
{
gender = newGender;
}
public Mountain addMountain(Mountain mountain)
{
return mountain;
}
public ArrayList<Mountain> getHighestMountain(Mountain mountainHeight)
{
double maxHeight = 1;
int index = 1;
for(int i = 0; i < mountainHeight.length; i++) {
if(mountainHeight[i].getHeight()>maxHeight) {
index = i;
}
}
}
}
マウンテンクラス:
/**
* Write a description of class Mountain here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Mountain
{
// Instance variables.
private double height;
private String name;
/**
* Constructor for objects of class Mountain
*/
public Mountain(String mountainName, double mountainHeight)
{
// Initialise instance variables
name = mountainName;
height = mountainHeight;
}
/**
* Accessor method for mountain name.
*/
public String getName()
{
return name;
}
/**
* Set the mountain name.
*/
public void setName(String mountainName)
{
name = mountainName;
}
/**
* Accessor method for mountain height.
*/
public double getHeight()
{
// put your code here
return height;
}
/**
* Set the mountain height.
*/
public void setHeight(double newHeight)
{
height = mountainHeight;
}
}
私は、この値を返すようにしようとしましたが、あなたが見ることができるとして、それは不完全です。
ありがとうございます!
maxHeight変数を見つけた実際の最大高さに更新する必要があります。現在、山は1よりも高いかどうかを比較しています。また、なぜこのメソッドは山のArrayListを返しますか?あなたは一つの山を探しています。そして、なぜそれに既存の山を渡すのですか?登山者はすでに山地のリストをフィールドとして持っています。なぜあなたはその関数にパラメータとして何かを渡す必要があるのか分かりません。 –
また、 'getHighestMountain'はおそらくリスト全体ではなく'山 'のみを返すべきです。 – Berger
ここには多くのことが間違っています。 addMountainメソッドは何も追加せず、単にパラメータを返します。あなたのgetHighestMountainは山を返しませんが、山のArrayListを返します。あなたはListの代わりにMountainというパラメータをループしています。 –