因为是使用的泛型,我们并不确定数据类型,

对于数据的比较就不能用平时的大于或者小于。

我们需要比较对象实现Comparable接口,该接口下的compareTo()方法可以用来比大小

定义Sort类:

package com.daleyzou.blog;

/**
* @Author: DaleyZou
* @Description: 定义进行排序都需要哪些方法
* @Date: Created in 20:57 2018/10/29
* @Modified By:
*/
public abstract class Sort<T extends Comparable<T>> {
public abstract void sort(T[] nums); // 排序的方法 public int less(T v, T w){ // 比较大小
return v.compareTo(w);
} public void swap(T[] nums, int i, int j){ // 进行数组值交换
T temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}

排序方法使用快速排序:

package com.daleyzou.blog;

import java.util.Arrays;

/**
* @Author: DaleyZou
* @Description: 使用泛型实现对int数组或者String数组进行排序
* 基于快速排序实现
* @Date: Created in 21:07 2018/10/29
* @Modified By:
*/
public class BubbleSort<T extends Comparable<T>> extends Sort<T> {
@Override
public void sort(T[] nums) {
boolean isSorted = false;
for (int i = 0; i < nums.length; i++){
isSorted = true;
for (int j = 1; j < nums.length - i; j++){
if (nums[j].compareTo(nums[j - 1]) < 0){
swap(nums, j, j - 1);
isSorted = false;
}
}
if (isSorted){
break;
}
}
} public static void main(String[] args){
// 验证String类型
String[] strs = new String[]{"123", "1234", "1"};
BubbleSort<String> strSort = new BubbleSort<>();
strSort.sort(strs);
System.out.println("验证String类型:");
Arrays.stream(strs).forEach(System.out::println); // 验证int类型
Integer[] ints = new Integer[]{123,1234,1};
BubbleSort<Integer> intSort = new BubbleSort<>();
intSort.sort(ints);
System.out.println("验证int类型");
Arrays.stream(ints).forEach(System.out::println);
}
}

使用泛型实现对int数组或者String数组进行排序的更多相关文章

  1. int数组转string数组和int数组转string中间用逗号隔开

    //int 数组转string数组 ,,,}; string result=test.Select(i => i.ToString()).ToArray(); //int 数组转 string中 ...

  2. Long数组转String数组

    public static String[] longToString(Long longArray[]) { if (longArray == null || longArray.length &l ...

  3. JAVA将Object数组转换为String数组

    java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String; java将Object[ ...

  4. C# List泛型转换,int,string 转字符,转数组

    List转字符串 List<string> List = new List<string>(); string strArray = string.Join(",&q ...

  5. C# 之 将string数组转换到int数组并获取最大最小值

    1.string 数组转换到 int 数组 " }; int[] output = Array.ConvertAll<string, int>(input, delegate(s ...

  6. c#中从string数组转换到int数组

    以前一直有一个数组之间转换的东西,可是忘记了,今天也是找了好久也没有解决,最后用这种方法解决了,分享给大家. " }; int[] output = Array.ConvertAll< ...

  7. C# string数组转int数组(转载)

    C# string数组转int数组   用法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 //字符串数组(源数组) string[] sNums = new[] {"1 ...

  8. C# string数组转int数组

    用法 //字符串数组(源数组) string[] sNums = new[] {"1", "2"}; //整型数组(目标数组) int[] iNums; //转 ...

  9. C# int数组转string字符串

    方式一:通过循环数组拼接的方式: int[] types = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; string result = string.Empty ...

随机推荐

  1. Jenkins+Ant+Jmeter接口自动化集成测试

    一.Jmeter+ant 1.首先我们默认Jmeter脚本已经录制好了,并测试通过,存在(查询模块.jmx)脚本 2.将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.j ...

  2. Java多线程使用wait和notify实现生产者消费者模型

    Java多线程使用wait和notify这两个关键字的学习,通过实现生成者与消费者来成对研究比较科学. 从两个字的意义来讲就是等待与通知这个简单道理. 现在先模拟一个缓存区存储,是用一个list实现的 ...

  3. fastjson的json字符串转List

     1.代码 gameListStr = "[{"gameId":"1","gameName":"哈哈"},{& ...

  4. Window WindowManager 和WindowManager.LayoutParams

    <一> Window window是android中的窗口,表示顶级窗口的意思,也就是主窗口,它有两个实现类, PhoneWindow和MidWindow,我们一般的activity对应的 ...

  5. 详细记录vue项目实战步骤(含vue-cli脚手架)

    一.通过vue-cli创建了一个demo. (vue-cli是快速构建这个单页应用的脚手架,本身继承了多种项目模板:webpack(含eslit,unit)和webpack-simple(无eslin ...

  6. C++/CLI中的const literal initonly 友元(转)

    C++/CLI中的const literal initonly 友元 C++/CLI中的const Visual C++并不允许在const对象上调用成员函数,除非该成员函数也被声明为const. C ...

  7. JavaScript 对象继承 OOP (三)

      对象继承 A 对象通过继承 B 对象,就能直接拥有 B 对象的所有属性和方法.这对于代码的复用是非常有用的. JavaScript 语言的继承不通过 class (es6 中的class 不过是 ...

  8. unity工具介绍

    MemoryProfiler内存分析工具 行为树 behaviac github 场景动画编辑器 Snapdragon Profiler性能分析工具 VTune性能分析器 protobuf数据交换格式 ...

  9. count group by 组合用法

    1 需求是 求订单表1个月内 订单累计费用超过500的有多少人 根据题意 最先写出的sql是这样的 SELECT SUM(totalfee)AS n FROM sendorder WHERE `add ...

  10. 377. Combination Sum IV 70. Climbing Stairs

    back function (return number) remember the structure class Solution { int res = 0; //List<List< ...