Я застрял на методе, который найдет самую высокую точку кипения из массива элементов из периодической таблицы. Я получаю ошибку, которую я не могу преобразовать из Element в double. Я попробовал кастинг элементов [0], чтобы удвоить, и это тоже не сработало. Любая помощь приветствуется.Java Поиск наивысшего значения в массиве
public void findHighestBoilingPoint(Element[] elements, int size)
{
double highest = elements[0];
for (int j = 1; j < elements.length; j++)
{
if (highest < elements[j])
{
highest = elements[j];
}
}
System.out.println(highest);
}
Это класс элемента Я написал
public class Element
{
String elementName;
int atomicNumber;
String symbol;
double boilingPoint;
double meltingPoint;
double density;
double molecularWeight;
public Element(String elementName, int atomicNumber, String symbol,
double boilingPoint, double meltingPoint, double density,
double molecularWeight)
{
this.elementName = elementName;
this.atomicNumber = atomicNumber;
this.symbol = symbol;
this.boilingPoint = boilingPoint;
this.meltingPoint = meltingPoint;
this.density = density;
this.molecularWeight = molecularWeight;
}
public Element(String[] oneElement)
{
elementName = oneElement[0];
atomicNumber = Integer.parseInt(oneElement[1]);
symbol = oneElement[2];
if(!(oneElement[3].equals("")))
{
boilingPoint = Double.parseDouble(oneElement[3]);
}
if(!(oneElement[4].equals("")))
{
meltingPoint = Double.parseDouble(oneElement[4]);
}
if(!(oneElement[5].equals("")))
{
density = Double.parseDouble(oneElement[5]);
}
molecularWeight = Double.parseDouble(oneElement[6]);
}
/**
* @return the elementName
*/
public String getElementName()
{
return elementName;
}
/**
* @return the atomicNumber
*/
public int getAtomicNumber()
{
return atomicNumber;
}
/**
* @return the symbol
*/
public String getSymbol()
{
return symbol;
}
/**
* @return the boilingPoint
*/
public double getBoilingPoint()
{
return boilingPoint;
}
/**
* @return the meltingPoint
*/
public double getMeltingPoint()
{
return meltingPoint;
}
/**
* @return the density
*/
public double getDensity()
{
return density;
}
/**
* @return the molecularWeight
*/
public double getMolecularWeight()
{
return molecularWeight;
}
@Override
public String toString()
{
String output = "Element Name:\t\t"+ elementName;
output = output + "\nAtomic Number: \t\t"+ atomicNumber;
output = output + "\nSymbol:\t\t\t + symbol";
if(boilingPoint == 0)
{
output = output + "\nBoiling Point:\t\t unknown";
}
else
{
output = output + "\nBoiling Point:\t\t" + boilingPoint;
}
if(meltingPoint == 0)
{
output = output + "\nMelting Point:\t\t unknown";
}
else
{
output = output + "\nMelting Point:\t\t" + meltingPoint;
}
if(density == 0)
{
output = output + "\nDensity:\t\t unknown";
}
else
{
output = output + "\nDensity:\t\t" + density;
}
if(molecularWeight == 0)
{
output = output + "\nMolecular Weight:\t\t unknown";
}
else
{
output = output + "\nMolecular Weight:\t\t" + molecularWeight;
}
return output;
}
Как выглядит класс «Элемент»? Вы должны получить доступ к соответствующему свойству класса для сравнения. –
У вас есть массив элементов. Что заставляет вас думать, что вы можете сказать «double = Element»? Прочитайте эти сообщения об ошибках - они там помогут! – John3136
Является ли ваш метод подписью что-то вроде этого? : 'public void findHighestBoilingPoint (double [] elements, int size)' – tanjir