Java泛型实现冒泡排序

使用泛型的冒泡排序Java代码:

public class SortUtils {
  public static <T extends Comparable<? super T>> void bubbleSort(T[] nums) {
    int size = nums.length;
    for (int k = 0; k < size; k++) {
      for (int i = 0; i + k + 1 < size; i++) {
        if (nums[i].compareTo(nums[i + 1]) > 0) {
          T t = nums[i];
          nums[i] = nums[i + 1];
          nums[i + 1] = t;
        }
      }
    }
  }
}

单元测试:

import org.junit.Test;
import static org.junit.Assert.assertArrayEquals;
import java.util.Arrays;

public class TestSortUtils {

  @Test
  public void testDouble() {
    Double dnums1[] = { 3.1, 2.1, 4.2, 5.3 };
    Double dnums2[] = { 3.1, 2.1, 4.2, 5.3 };
    SortUtils.bubbleSort(dnums1);
    Arrays.sort(dnums2);
    assertArrayEquals(dnums1, dnums2);
  }

  @Test
  public void testInt() {
    Integer inums1[] = { 3, 5, 4, 2, 1, 7 };
    Integer inums2[] = { 3, 5, 4, 2, 1, 7 };
    SortUtils.bubbleSort(inums1);
    Arrays.sort(inums2);
    assertArrayEquals(inums1, inums2);
  }
}

 

本文链接:http://bookshadow.com/weblog/2016/03/12/java-generics-bubble-sort/
请尊重作者的劳动成果,转载请注明出处!书影博客保留对文章的所有权利。

如果您喜欢这篇博文,欢迎您捐赠书影博客: ,查看支付宝二维码