Java存储对象

时间:2016-10-21 17:31:40

标签: java arraylist

如何将分数添加到arraylist中,然后将其检索并存储在局部变量中?

问题: 创建第二个类,可以使用ArrayList分数存储多个Fraction类对象。这个类应该有一个名为demo的方法,它按顺序执行以下操作:

  • 创建四个分数对象(1 / 4,2 / 4,3 / 4,4 / 1)并存储它们 集合。
  • 从列表中检索第一个分数并存储 在名为fraction1的局部变量中。检索第二个分数 从列表中存储并存储在名为fraction2的局部变量中。
  • 还必须调用fraction1的相等方法,将fraction2作为参数传递。
  • 将fraction1乘以fraction2

  • 反转fraction1

  • 使用toString打印出fraction1。

我很困惑,主要需要帮助解决前两个问题。我想自己尝试一下,但我只需要稍微推动一下或如何做。

到目前为止,我有 -

第二课:

 import java.util.ArrayList;
    public class MyFractions 
    {
    private ArrayList<Fraction> fractions;



     public MyFractions()
   {
   ArrayList<Fraction> fractions = new ArrayList<Fraction>();

   }
    public void demo()
    {
      fractions.add();
    }
  }

分数等级:

 public class Fraction
       {
           private long numerator;
          private long denominator;

public Fraction(long num, long den)   
{
   numerator=num;
   denominator=den;
}

public Fraction(long num) 
{
   numerator=num;
   denominator=1;
}


public long denominator() 
{
    return denominator;  
}

public void dividedBy(Fraction otherFraction)
{
    numerator=numerator*otherFraction.denominator;
    denominator=denominator*otherFraction.numerator;
}


public boolean  equals(long n) 
{
    return  numerator==n;
}

public boolean  equals(Fraction otherFraction) 
{
    return numerator==otherFraction.numerator && denominator==otherFraction.denominator;
}

public void negative() 
{
    numerator= -numerator;
}


public long    numerator() 
{
    return numerator;
}


public void inverse() 
{
    long temp=numerator;
    numerator=denominator;
    denominator=temp;
}

public boolean  isProper()
{
    return numerator<denominator;  
}

public void times(Fraction other) 
{
    numerator=numerator*other.numerator;
    denominator=denominator*other.denominator;
}


public double   toDouble() 
{
    return 1.0*numerator/denominator;
}

public String toString() 
{
    return numerator + "/" + denominator;
}


public boolean  isWholeNumber()
{
    return denominator==1;
}

 }

2 个答案:

答案 0 :(得分:1)

如果您希望能够在分数的arraylist中添加Fraction对象,则需要为add方法提供一个参数,该参数将是您尝试添加的Fraction对象。

public void demo(Fraction obj)
{
  fractions.add(obj);
}

现在,您可以通过执行以下操作将

MyFractions mFractions = new MyFractions();
mFractions.demo(new Fraction(1, 2)); // adds the fraction 1/2 to the arraylist

以下是一种可用于从分数集合中检索分数的方法(此方法适用于MyFractions类)

public Fraction getFraction(int index)
{
    return fractions.get(index);
}

答案 1 :(得分:0)

要添加分数,请尝试以下操作:fractions.add(new Fraction(1, 4));

检索派系:Fraction fraction1 = fractions.get(0),以检索第一个分数