java - 如何避免冒泡排序算法中重复的字符串值?

标签 java arrays sorting duplicates bubble-sort

我正在尝试找出如何在排序算法中避免打印重复名称

我忽略空字符串的原因是我正在实现的系统是一个票务预订系统,它仅显示姓名列表而不是空位置。

有人可以帮我吗?

String[] name={"fiona","vacant","allen","fiona","david","vacant","vacant"};
        for (int i = 0; i <= (name.length-1); i++){
            for (int j = i+1; j < name.length; j++ ){
                if (name[i].compareTo(name[j])>0) {
                    String temp = name[i];
                    name[i] = name[j];
                    name[j] = temp;
                }
            }
            if (!name[i].equals("vacant")) {
                System.out.println(name[i] + " ");
            }
        }

最佳答案

只需检查您正在打印的名称是否与前一个相同:

String[] name={"fiona","vacant","allen","fiona","david","vacant","vacant"};
for (int i = 0; i <= (name.length-1); i++){
    for (int j = i+1; j < name.length; j++ ){
        if (name[i].compareTo(name[j])>0) {
            String temp = name[i];
            name[i] = name[j];
            name[j] = temp;
        }
    }
    if (!name[i].equals("vacant") && (i == 0 || !name[i-1].equals(name[i]))) {
        System.out.println(name[i] + " ");
    }
}

关于java - 如何避免冒泡排序算法中重复的字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60710471/

相关文章:

java - 排除在 IntellIJ 中运行的测试

javascript - 基于日期合并 Json 数组

c - 为什么我的排序代码在 c 中不起作用?

java - 翻转存储为 byte[] 数组的图像

java - Netty - channel 立即关闭

python - 在两个 numpy 形状对象数组上应用成对形状函数

c++ - 当 auto 用于数组时,为什么它被转换为指针而不是引用?

javascript - JS通过多个参数过滤

sorting - Data.Semigroup ((<>)) 在这个 Haskell 排序代码中做了什么?

JAVA 将 2D 数组的各个维度传递为 1D 数组