private FloatCentroidsResult cluster(List<FloatLocalFeatureAdaptor<?>> rawData) { // build full data array final float[][] vectors = new float[rawData.size()][]; for (int i = 0; i < vectors.length; i++) { vectors[i] = rawData.get(i).getFeatureVector().values; } // Perform clustering final FloatKMeans kmeans = FloatKMeans.createExact(numVladCentroids, numIterations); final FloatCentroidsResult centroids = kmeans.cluster(vectors); return centroids; } }