Создание списка массивов объектов другого класса и манипулирование ими

#java #arrays

#java #массивы

Вопрос:

Я должен создать второй класс под названием MyFractions, который может хранить произвольное количество объектов класса Fraction, используя ArrayList дробей.

Затем потребуется метод, который выполняет следующее:

  1. Создайте четыре объекта (представляющих значения дроби) и сохраните их в коллекции.
  2. Извлеките первую часть из списка и сохраните ее в локальной переменной.
  3. Вызывайте различные методы для извлечения дробей из arraylist.

Это то, что у меня есть на данный момент:

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

public void demo(String fractionname)
{
    Fraction obj1 = new Fraction(2,3);
    fractions.add(obj1);
    Fraction obj2 = new Fraction(1,3);
    fractions.add(obj2);
    Fraction obj3 = new Fraction(4,3);
    fractions.add(obj3);
    Fraction obj4 = new Fraction(6,1);
    fractions.add(obj4);

}
  

}

А вот и класс Fraction:

 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 amp;amp; 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;
}
  

}

Кажется, я не могу понять, как извлечь элементы из списка. Я пробовал использовать разные итерации, и, похоже, ничего не работает.

Комментарии:

1. Можете ли вы поделиться тем, что вы пробовали до сих пор?

Ответ №1:

Чтобы извлечь элемент из списка, используйте ArrayList.get() .

Или вы можете выполнить итерацию по коллекции:

 for (final Fraction fraction : fractions) {
    System.out.println(fraciton.toString());
}
  

Или вызовите любой метод, который вы хотите, если нет toString() .

Комментарии:

1. Спасибо, в данном конкретном случае мне нужно было только два назначить два объекта из этого массива, но это полезно для дальнейшего использования.

Ответ №2:

Вы можете использовать ArrayList.get(). Если ваша задача состоит в том, чтобы извлечь первый объект и сохранить его в локальной переменной, вы должны сделать следующее.

 Fraction fraction1 = fractions.get(0);
  

Если ваша конечная цель — извлечь каждый из них, тогда вам следует выполнить итерацию через Arraylist

Комментарии:

1. @kpinz Рад помочь.