java - 比较并循环遍历数组以查找哪个元素的熔点较低

标签 java arrays

运行该方法后,它只是循环并打印整个数组以及该索引中的内容。

想知道我做错了什么以及如何让它只打印出熔点最低的数组信息。

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 元素的方法:

  1. 如果 elementArray 为 null 或其,则返回 null
  2. 将第一个元素设置为 currentLowestMeltingPoint(因为到目前为止)。
  3. 使用 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/

相关文章:

java - 另一个 SwingWorker 的 done 方法中的 SwingWorker

java - 检索与字符串同名的变量

c++ - (C++) 在构造函数中初始化的变量被放在一个无关数组的末尾。

javascript - 从对象数组中删除属性

arrays - Swift NSCoding - 如何读取编码数组

java - 显示 JFileChooser 时出现 NullPointerException

java - 确定某个单词是否是 Apache Derby 中的保留字

python - 对 NumPy 数组的一行求和

python - 在python中将一维列表转换为具有给定行长度的二维列表

java - XmlPullParser 正在跳过 START_TAG?