Я нашел алгоритм, содержащий метод слияния (https://commons.apache.org/proper/commons-math/jacoco/org.apache.commons.math3.stat.clustering/DBSCANClusterer.java.html)Слияние двух списков. Sens использования HashSet
private <T> List<T> theirMerge(final List<T> one, final List<T> two) {
final Set<T> oneSet = new HashSet<T>(one);
for (T item : two) {
if (!oneSet.contains(item)) {
one.add(item);
}
}
return one;
}
Что является основным преимуществом использования HashSet
здесь?
Моя проще реализация выглядит следующим образом
private <T> List<T> myMerge (ArrayList<T> one, ArrayList<T> two){
for (T item: two) {
if(!one.contains(item)){
one.add(item);
}
}
return one;
}
Dupe of: http://stackoverflow.com/questions/1035008/what-is-the-difference-between-set-and-list – Tunaki
Я знаю разницу. Но почему я предпочитаю использовать вышеупомянутую версию? Просто чтобы смешать заказ? – froehli
из-за производительности (если заказ не важен), см. Http://stackoverflow.com/questions/18706870/java-hashset-vs-array-performance – wero