私は最近インターフェースで遊んでいて、Comparable
を正常に実装し、BankAccount
オブジェクトをその量でソートしました。一般的なinstace変数がdouble型であるさまざまなオブジェクトのArrayListをソート
ArrayList
には、インスタンス変数「area」(double)を持つタイプBankAccount
とCountry
のオブジェクトが含まれているとどうなりますか?どちらもdouble型の値を持ち、比較およびソートが可能です。
私の最初の質問は どのようにインスタンス変数としてdoubleを持つさまざまなオブジェクトを含むArrayListを並べ替えるには?ここで
は私のコードです:
/**
A bank account has a balance that can be changed by
deposits and withdrawals.
*/
public class BankAccount implements Measurable, Comparable<BankAccount>
{
private Double balance;
/**
Constructs a bank account with a zero balance.
*/
public BankAccount()
{
balance = 0.0;
}
/**
Constructs a bank account with a given balance.
@param initialBalance the initial balance
*/
public BankAccount(Double initialBalance)
{
balance = initialBalance;
}
/**
Deposits money into the bank account.
@param amount the amount to deposit
*/
public void deposit(Double amount)
{
balance = balance + amount;
}
/**
Withdraws money from the bank account.
@param amount the amount to withdraw
*/
public void withdraw(Double amount)
{
balance = balance - amount;
}
/**
Gets the current balance of the bank account.
@return the current balance
*/
public double getBalance()
{
return balance;
}
public double getMeasure()
{
return balance;
}
public int compareTo(BankAccount o)
{
return this.balance.compareTo(o.getBalance());
}
}
/**
A country with a name and area.
*/
public class Country implements Measurable
{
private String name;
private double area;
/**
Constructs a country.
@param aName the name of the country
@param anArea the area of the country
*/
public Country(String aName, double anArea)
{
name = aName;
area = anArea;
}
/**
Gets the country name.
@return the name
*/
public String getName()
{
return name;
}
/**
Gets the area of the country.
@return the area
*/
public double getArea()
{
return area;
}
public double getMeasure()
{
return area;
}
}
public interface Measurable
{
double getMeasure(); // An abstract method
}
import java.util.*;
public class MeasurableTester
{
public static void main(String[] args)
{
// Calling the average method with an array of BankAccount objects
BankAccount b=new BankAccount(10.0);
BankAccount c = new BankAccount(2000.0);
List<BankAccount> accounts = new ArrayList<BankAccount>();
accounts.add(b);
accounts.add(c);
BankAccount x= Collections.max(accounts);
System.out.println(x.getBalance());
}
}
'ArrayList'はタイプ' BankAccound'と 'Country'のオブジェクトが含まれていますか?あなたの 'BankAccount'と' Country'も同様のクラスを拡張していますか?あなたはクラスを見せてもらえますか? –
自分のコードを含めるように投稿を編集しました – LakeParime
「測定可能」つまり 'ArrayList'をソートするオブジェクトを比較したいのですか? –
Matt