簡體   English   中英

在 oop 中查找最小值和最大值

[英]Finding min and max value in a oop

我可以得到有關此 Java 代碼的幫助嗎? 我正在嘗試從數組列表中輸出元素的最小值和最大值,但它只輸出添加到列表中的第一個元素和添加到列表中的最后一個元素。 有人可以告訴我錯誤可能是什么嗎? 這是我的代碼:

import java.util.ArrayList;
//import java.util.Collections;

public class ClassName{
    private String fieldName;
    private ArrayList<SubClass> list = new ArrayList<>();

    public ClassName(String a) {
        fieldName = a;
    }

    public String getFieldName() {
        return fieldName;
    }

    public void addSub(SubClass b) {
        list.add(b);
    }

    public void addSub(String b, double c) {
        list.add(new SubClass(b, c));
    }

    public boolean haveSub(String b, double c) {
        return list.contains(new SubClass(b, c));
    }

    public SubClass getSubByName(String b) {
        String d = b;
        for (Sub elem : list) {
            d += elem;
            return elem;
        }
        return null;
    }

    public SubClass closest() {
        SubClass min = list.get(0);
        for (int i = 1; i > list.size(); i++) {
            SubClass minC = list.get(i);
            if (min.equals(minC)) {
                min = list.get(i);
            }
        }
        return min;
    }
    public SubClassfurthest() {
        SubClass max  = list.get(0);
        for (int i = 0; i < list.size(); i++) {
            Planet maxC = list.get(i);
            if (max.equals(maxC)) {
                max = list.get(i);
            }
        }
        return max;
    }

    @Override
    public String toString() {
        String s = "...text..." + fieldName + " ...text...:\n";
        for (SubClass elem : list){
            s += elem.toString();
        }
        return s;
    }

}

從所使用的名稱來看,我相信您打算通過“距離”(大概是與 Sun 的距離?)進行比較。 假設這是真的,並且 Planet 類包含一個 getDistanceFromSun() 方法,那么您可以執行類似的操作。 除了切換運算符(或交換操作數)外,查找最遠行星的工作方式相同。

public Planet findClosestToSun() {
  Planet closest = null;
  for (Planet planet : planets) {
    if (null == closest || planet.getDistanceFromSun() < closest.getDistanceFromSun()) {
      closest = planet;
    }
  }
  return closest;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM