运行该方法后,它只是循环并打印整个数组以及该索引中的内容。
想知道我做错了什么以及如何让它只打印出熔点最低的数组信息。
public void choiceFive() {
double smaller = elementArray[0].getMeltingPoint();
for(int i = 0; i < count; i++){
if(elementArray[i].getMeltingPoint() < smaller){
smaller = elementArray[i].getMeltingPoint();
}
System.out.println(smaller);
}
}
最佳答案
我假设您有一个带有名称、熔点和其他一些属性的 Element
类,并且您想要找到 elementArray
的最低熔点。
获取最低熔点:
我实现了一个返回 LowestMeltingPoint
元素的方法:
- 如果 elementArray 为
null
或其空
,则返回 null。 - 将第一个元素设置为 currentLowestMeltingPoint(因为到目前为止是)。
- 使用 forEach 循环数组(这更干净)并检查元件熔点是否低于当前。如果为true:将元素设置为
currentLowestMeltingPoint
,否则保留迭代。
注意:它还会打印当前最低值以供引用。
元素类别:
public class Element
{
private String name;
private double meltingPoint;
public Element ( String name , double meltingPoint )
{
super ( );
this.name = name;
this.meltingPoint = meltingPoint;
}
public String getName ( )
{
return name;
}
public void setName ( String name )
{
this.name = name;
}
public double getMeltingPoint ( )
{
return meltingPoint;
}
public void setMeltingPoint ( double meltingPoint )
{
this.meltingPoint = meltingPoint;
}
@Override
public String toString ( )
{
return "Element [name=" + name + ", meltingPoint=" + meltingPoint + "]";
}
}
主程序:
public class MainProgram
{
/**
* Main method to test getLowestMeltingPoint method
* @param args
*/
public static void main ( String [ ] args )
{
Element helium = new Element ( "Helium" , -272 );
Element radon = new Element ( "Radon" , -71 );
Element mercury = new Element ( "Mercury" , -39 );
Element sulfur = new Element ( "Sulfur" , 113 );
Element polonium = new Element ( "Polonium" , 254 );
Element[] elementArray = {mercury, sulfur, radon, polonium, helium};
Element lowestMeltingPointE = getLowestMeltingPoint ( elementArray );
System.out.println ( "----------------------------------------------" );
System.out.println ( "My lowest melting point is: " + lowestMeltingPointE.getName ( ));
System.out.println ( "Its melting point is: " + lowestMeltingPointE.getMeltingPoint ( ) );
System.out.println ( "element toString: " + lowestMeltingPointE.toString ( ) );
}
/**
* this method finds the lowest melting point element
* @param elementArray, which is the element array you want to compare
* @return element with lowest point or null if array is null or empty
*/
public static Element getLowestMeltingPoint( Element[] elementArray)
{
Element currentLowest;
if( elementArray == null || elementArray.length == 0)
{
return null;
}
else
{
currentLowest = elementArray[0];
}
for ( Element element : elementArray)
{
if ( element.getMeltingPoint ( ) < currentLowest.getMeltingPoint ( ) )
{
currentLowest = element;
}
System.out.println ( "Current lowest: " + currentLowest.toString ( ) );
}
return currentLowest;
}
}
注意:该方法是静态的。如果您不知道它是什么,请检查:Understanding Class Members
输出:
Current lowest: Element [name=Mercury, meltingPoint=-39.0]
Current lowest: Element [name=Mercury, meltingPoint=-39.0]
Current lowest: Element [name=Radon, meltingPoint=-71.0]
Current lowest: Element [name=Radon, meltingPoint=-71.0]
Current lowest: Element [name=Helium, meltingPoint=-272.0]
----------------------------------------------
My lowest melting point is: Helium
Its melting point is: -272.0
element toString: Element [name=Helium, meltingPoint=-272.0]
我只是想给你完整的答案,因为有很多资源,而当我开始使用 Java 时,我并没有意识到。
祝你好运!
关于java - 比较并循环遍历数组以查找哪个元素的熔点较低,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40901117/