code: protected static KDistanceResult calculateKDistance(int kn, List<DistanceResult> distances)
      {
          // 算出した距離を用いてK距離とK距離近傍データのIDを算出
          int countedDataNum = 0;
          List<String> idList = new ArrayList<>();
          double nowDistance = 0.0d;
  
          // K値の値までIDのカウントを行い、距離を設定する。
          for (DistanceResult distanceResult : distances)
          {
              nowDistance = distanceResult.getDistance();
              idList.add(distanceResult.getDataId());
              countedDataNum++;
  
              if (kn <= countedDataNum)
              {
                  break;
              }
          }
  
          KDistanceResult kResult = new KDistanceResult();
          kResult.setkDistance(nowDistance);
          kResult.setkDistanceNeighbor(idList);
          return kResult;
      }
docs: 距離算出結果リストを基にK距離とK距離近傍データのIDを算出する。
  
  @param kn K値
  @param distances 距離算出結果リスト
  @return K距離とK距離近傍データのIDを保持するエンティティ。但し、K距離算出に必要なデータ個数を満たさない場合は判定対象点から最遠の点に対する距離となる。