#java #arrays
#java #массивы
Вопрос:
Я должен создать второй класс под названием MyFractions, который может хранить произвольное количество объектов класса Fraction, используя ArrayList дробей.
Затем потребуется метод, который выполняет следующее:
- Создайте четыре объекта (представляющих значения дроби) и сохраните их в коллекции.
- Извлеките первую часть из списка и сохраните ее в локальной переменной.
- Вызывайте различные методы для извлечения дробей из 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 Рад помочь.