0

私はこのJavaクラスに所属しており、基本的にはやり過ぎを目指していますが、ほとんどの時間を、物事を理解しようとして、それが機能しないことに費やしてきました。

TemperatureクラスのArrayListを作成しています。

List<Temperature> templist = new ArrayList<Temperature>();
Temperature t1 = new Temperature ();

for (number of loops user wants) 
{
 templist.add(t1)
}

しかし、私のTemeperatureクラスには、数と規模の両方があります。だから私がt1を支払うとき、それはこれに見えます

Temperature [degrees=43.0, scale=F]  

getDegrees()とメソッドを使用して、とを個別getScale()に抽出する方法。また、最小、最大、平均を取得する必要があります。forループを使用してそれを行う方法を知っていますが、関連するクラスのインスタンスがあるので、それでも可能ですか?degreesscales

だから基本的にこれは私が持っているものです

Temperature.java

import java.util.Scanner;

/*
 * This class represents a temperature value.
 */
    public class Temperature {

private double degrees;
private char scale;
Scanner s = new Scanner (System.in);



public Temperature (){
this.degrees = 0 ;
this.scale = 'F' ;
    }



public double getDegrees() {
    return degrees;
}

//public double getDegreesF(){
//  return degrees;
//}

public double getDegreesC(Temperature temperature)

{
         if (scale == 'C') 
             return degrees;
         else if (scale == 'F')
           degrees = ((degrees - 32)*(5)/(9));
           return degrees;


}



public void setDegrees(double degrees) {
    this.degrees = degrees;
}

public char getScaleC() {
     scale = 'C';
    return scale;
}



    public void setScale(char scale) {

    while  ((scale != 'C') && (scale !='F') )

       {

        System.out.println("Please enter correct value");
        scale = s.next().charAt(0);
      } 

    this.scale = scale;
}


@Override
public String toString() {
    return "Temperature [degrees=" + degrees + ", scale=" + scale + "]";
}


    }

 Test Temperature.java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;




public class TestTempreture {

    /**
     * @param args
     */
    public static void main(String[] args) {

        int numberoftimes = 0 ;


        Scanner s = new Scanner (System.in);

        Temperature t1 = new Temperature ();
        List<Temperature> templist = new ArrayList<Temperature>();

        for (int i = 0; i < numberoftimes; i ++  )

        {

            t1.setDegrees(s.nextInt());
            t1.setScale(s.next().charAt(0));
            templist.add(t1);


        }


        System.out.println(templist.get(0));
4

1 に答える 1

0

問題は、、、およびArrayListを計算する方法がわからないことです。メインコードでループを使用することも、コンポジションを使用することもできます...minmaxaverage

public class AllTemps {
    private static final ArrayList<Temperature> temps = new ArrayList<Temperature>();
    private Temperature min = null;

    public AllTemps() { }

    public boolean add(Temperature t) {
        updateMin(t);
        return temps.add(t);
    }

    // Here you would implement any other methods to access the ArrayList that you need

    private void updateMin(Temperature t) {
        if (min == null) {
            min = t;
        } else {
            if(min.getDegrees() > t.getDegrees()) min = t;
        }
    }
}

そして、同じ方法で、、などのmax計算を実装できます。average

于 2012-11-15T19:58:12.563 に答える