列表类型的Java泛型用法

A_B*_*A_B 4 java generics

有没有一种在这里使用Java泛型的方法,所以我的方法可以取List<Double>or或List<Pair<Double, Double>>

private Map<Integer, Double> getValuesMap(int indexBegin, int indexEnd, List<Double> values) {
  Map<Integer, Double> map = new LinkedHashMap<>();

  if (indexBegin <= indexEnd) {
    for (int i = indexBegin; i <= indexEnd; i++) {
      map.put(i, values.get(i));
    }
  } else {
    for (int i = indexBegin; i >= indexEnd; i--) {
      map.put(i, values.get(i));
    }
  }

  return map;
}
Run Code Online (Sandbox Code Playgroud)

Cod*_*ode 8

将泛型添加到您的班级并按以下方式使用它,

public class Test<T> {
private Map<Integer, T> getValuesMap(int indexBegin, int indexEnd, List<T> values) {
        Map<Integer, T> map = new LinkedHashMap<>();

        if (indexBegin <= indexEnd) {
            for (int i = indexBegin; i <= indexEnd; i++) {
                map.put(i, values.get(i));
            }
        } else {
            for (int i = indexBegin; i >= indexEnd; i--) {
                map.put(i, values.get(i));
            }
        }

        return map;
    }

}
Run Code Online (Sandbox Code Playgroud)

更新:您也可以使用通用方法,

private <T>  Map<Integer, T> getValuesMap(int indexBegin, int indexEnd, List<T> values)
Run Code Online (Sandbox Code Playgroud)