java排序去重示例分享


下面是一个使用Java进行排序并去重的简单示例。这个示例中,我们将使用`ArrayList`来存储一些整数,然后利用`Collections.sort()`方法进行排序,并使用`LinkedHashSet`来去除重复项,因为`LinkedHashSet`保持元素的插入顺序(基于`HashMap`的迭代顺序,但在Java 8及以后版本中,`HashMap`不保证映射的顺序,但`LinkedHashSet`由于其内部实现,会保持元素的插入顺序)。不过,为了纯粹的去重和保持排序结果,我们可以直接排序后遍历数组或列表来手动去重。这里提供一个使用`ArrayList`和`Collections.sort()`,然后遍历去重的示例:


import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class SortAndDeduplicate {

    public static void main(String[] args) {
        // 创建一个包含重复元素的ArrayList
        List<Integer> numbers = new ArrayList<>();
        numbers.add(5);
        numbers.add(1);
        numbers.add(3);
        numbers.add(5);
        numbers.add(2);
        numbers.add(1);

        // 对列表进行排序
        Collections.sort(numbers);

        // 创建一个新的ArrayList来存储去重后的元素
        List<Integer> uniqueNumbers = new ArrayList<>();

        // 遍历排序后的列表,去重
        for (int i = 0; i < numbers.size(); i++) {
            // 如果当前元素与前一个元素不相同,则添加到uniqueNumbers中
            if (i == 0 || numbers.get(i) != numbers.get(i - 1)) {
                uniqueNumbers.add(numbers.get(i));
            }
        }

        // 输出结果
        System.out.println(uniqueNumbers);
    }
}

这段代码首先创建了一个包含重复元素的`ArrayList`,然后使用`Collections.sort()`方法对其进行排序。之后,通过遍历排序后的列表,并利用一个简单的条件检查来确保不会将重复的元素添加到新的列表中,从而实现了去重。最后,输出去重并排序后的列表。