gpt4 book ai didi

java - 使用相同的 java 类(冒泡排序)对整数和字符串进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:48:45 24 4
gpt4 key购买 nike

如何修改冒泡排序整数的代码,以便我也可以将它重新用于字符串?或者我是否需要创建一个全新的类来专门对字符串进行排序。谢谢!

主类:

public class BubbleSortTest {

public static void main(String[] args) {
Integer[] integers = {25, 15, 45, 5, 40, 50, 10, 20, 35, 30};
ArrayUtility.display(integers);
BubbleSort.sort(integers);
ArrayUtility.display(integers);

String[] strings = {"def", "efg", "bcd", "abc", "fgh", "cde", null};
ArrayUtility.display(strings);
BubbleSort.sort(strings);
ArrayUtility.display(strings);
}
}

排序类:

public class BubbleSort {

public static void sort(Integer[] numbers) {
Integer temp;

for (Integer i = 0; i < numbers.length; i++) {
for (Integer j = 1; j < (numbers.length) - i; j++) {
if (numbers[j - 1] > numbers[j]) {

//SWAPPING ELEMENTS
temp = numbers[j - 1];
numbers[j - 1] = numbers[j];
numbers[j] = temp;
}
}
}
}
}

最佳答案

您可以使用 Generic Types :

这样的东西可能是有效的:

public static <E extends Comparable<E>> void bubbleSort(E[] unsorted) {
for(int iter =1; iter< unsorted.length; iter++){
for(int inner = 0; inner < (unsorted.length - iter); inner ++){
if(unsorted[inner].compareTo(unsorted[inner+1]) > 0){
E tmp = unsorted[inner];
unsorted[inner] = unsorted[inner + 1];
unsorted[inner + 1] = tmp;
}
}
}
}

这意味着,该方法适用于任何类型的数组,只要它实现了 Comparable。无论是什么类型,都将在整个方法中用作 E。由于编译器知道 E 是一个 Comparable,因此编译器知道这种类型的对象具有 .compareTo(...)

关于java - 使用相同的 java 类(冒泡排序)对整数和字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47327457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com