开发者社区> 问答> 正文

用泛型编写一个冒泡排序法(java语言)

RT

展开
收起
知与谁同 2018-07-18 15:06:25 1872 0
2 条回答
写回答
取消 提交回答
  • 社区管理员
    public class Test1 {
    public static void main(String[] args) {
    Integer[] elems = { 2, 3, 4, 5, 1 };
    new BubbleSort<Integer>().sort(elems); }
    } class BubbleSort<E extends Comparable<E>> { public void sort(E... elems) {
    // TODO Auto-generated method stub
    E temp;
    int count = 1;
    for (int k = 0; k < elems.length; k++) {
    System.err.print(elems[k] + " ");
    }
    System.err.println();
    System.err.println("---------------------");
    for (int i = 0; i < elems.length; i++) {
    for (int j = elems.length - 1; j > i; j--) {
    if (elems[j].compareTo(elems[j - 1]) < 0) {
    temp = elems[j - 1];
    elems[j - 1] = elems[j];
    elems[j] = temp;
    }
    System.err.print("count-" + count + ":");
    for (int k = 0; k < elems.length; k++) {
    System.err.print(elems[k] + " ");
    }
    System.err.println();
    count++;
    }
    System.err.print("count-" + count + ":");
    for (int k = 0; k < elems.length; k++) {
    System.err.print(elems[k] + " ");
    }
    System.err.println();
    count++;
    }
    System.err.println("---------------------");
    for (int k = 0; k < elems.length; k++) {
    System.err.print(elems[k] + " ");
    }
    System.err.println();
    }
    }
    2019-07-17 22:50:24
    赞同 展开评论 打赏
  • package com.xx.test;

    public class BubbleSort<E> implements Comparable<E>{

    public void bubbleSort(E[] array) {

    // 声明一个变量用于交换两个元素时使用
    E temp;

    for(int i = 0; i < array.length - 1; i++) {
    for(int j = 0; j < array.length - i - 1; j++) {
    if(((Comparable<E>) array[j]).compareTo(array[j + 1]) < 0) {
    temp = array[j];
    array[j] = array[j + 1];
    array[j + 1] = temp;
    }
    }
    }
    }

    public int compareTo(E o) {
    // 这里要实现比较两个对象的大小
    return 0;
    }
    }
    因为是泛型,所以需要根据实际情况来写一个compareTo方法来比较大小,例如传进来的是基本数据类型,那么就直接比较大小,如果传进来的是字符串,按字典顺序重写compareTo()方法,其他的类型又怎么比较就行了!
    2019-07-17 22:50:24
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载