public static SimilarUser[] getTopNFriends(List<SimilarUser> similarUsers, int topN) { // sort friends based on itemAgreement SimilarUser.sort(similarUsers); // select top N friends List<SimilarUser> topFriends = new ArrayList<SimilarUser>(); for (SimilarUser f : similarUsers) { if (topFriends.size() >= topN) { // have enough friends. break; } // This is useful when we compose results from different recommenders if (!topFriends.contains(f)) { topFriends.add(f); } } return topFriends.toArray(new SimilarUser[topFriends.size()]); }