package cn.test.bubble;

 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;

 /**
  * @author weianlai
  * @date 2018/11/2018/11/18 18:42
  */
 public class BubbleSort {

     public static void main(String[] args) {
 //        Integer[] arr = {1,8,3,5,9};
 //        String[] arr2 = {"f","a","y"};
 //        arraySort(arr2);
 //        System.out.println(Arrays.toString(arr2));

         List<String> list = new ArrayList<String>();
         list.add("f");
         list.add("a");
         list.add("y");
         listSort(list);
         System.out.println(list);
     }

     public static <T extends Comparable<T>> void listSort(List<T> list) {
         //将list转成数组
         Object[] arr = list.toArray();
         arraySort(arr);
         //改变list的值
         for (int i = 0; i < arr.length; i++) {
             list.set(i, (T) arr[i]);
         }
     }

     /**
      * 数组冒泡排序(泛型方法)
      * @param arr
      */
     public static <T> void arraySort(T[] arr) {
         int len = arr.length;
         boolean sorted = true;
         for (int j = 0; j < len-1; j++) {
             //假定有序
             sorted = true;
             for (int i = 0; i < len-1-j; i++) {
                 if (((Comparable) arr[i]).compareTo(arr[i+1]) > 0) {
                     T temp = arr[i];
                     arr[i] = arr[i+1];
                     arr[i+1] = temp;
                     sorted = false;
                 }
             }
             if (sorted) {
                 break;
             }
         }
     }

 }

list和数组排序(冒泡)的更多相关文章

  1. java基础入门之数组排序冒泡法

    public class ArrayTest03{ /* Name:数组排序,冒泡法 Power by :Stuart Date:2015-4-23*/ public static void main ...

  2. C++面试常见问题——06数组排序

    数组排序 冒泡.最简单的冒泡,没啥好讲的 #include<iostream> using namespace std; void BubbleSort(int a[],int len){ ...

  3. vue源码逐行注释分析+40多m的vue源码程序流程图思维导图 (diff部分待后续更新)

    vue源码业余时间差不多看了一年,以前在网上找帖子,发现很多帖子很零散,都是一部分一部分说,断章的很多,所以自己下定决定一行行看,经过自己坚持与努力,现在基本看完了,差ddf那部分,因为考虑到自己要换 ...

  4. javascript数组排序---2冒泡

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. java - day004 - 数组排序,插入,冒泡

    // 判断string 是否相等不能用 == 使用 equal 方法 Arrays.sort(数组);  数组排序算法 对基本类型. 优化的快速排序算法 对引用类型, 优化的合并排序算法

  6. JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)

    本文实例总结了JS数组排序技巧.分享给大家供大家参考,具体如下: 1.冒泡排序 var temp = 0; for (var i = 0; i < array.length; i++) { fo ...

  7. java数组排序(冒泡、直排)反转

    package lianxi; public class maopao { public static void main(String[] args){ int[] i=new int[]{45,6 ...

  8. 一些数组排序算法的简单实现(冒泡、插入、希尔、归并和qsort)

    #include <stdlib.h> #include <string.h> #include "sort.h" //冒泡排序 int bubbleSor ...

  9. 冒泡算法C#

    冒泡算法C# namespace数组排序 { classProgram { staticvoidMain(string[]args) { inttemp=; ,,,,,,,,}; #region该段与 ...

随机推荐

  1. ORA-01033: ORACLE initialization or shutdown in progress --手动删除表空间 DBF 后无法登陆问题

    进入CMD,执行set ORACLE_SID=fbms,确保连接到正确的SID: 2.执行sqlplus "/as sysdba" SQL>shutdown immediat ...

  2. form表单序列化serialize-object.js

    <form class="form-horizontal" role="form" id="myform" action=" ...

  3. JProfiler 8(一个很好的java性能监控工具) 下载和注册码

    windows x64 zip下载地址:http://download-aws.ej-technologies.com/jprofiler/jprofiler_windows-x64_8_0_1.zi ...

  4. Java缓存相关memcached、redis、guava、Spring Cache的使用

    随笔分类 - Java缓存相关 主要记录memcached.redis.guava.Spring Cache的使用 第十二章 redis-cluster搭建(redis-3.2.5) 摘要: redi ...

  5. Office 2016激活教程(附KMS激活软件)

    首先下载office 2016办公软件文件名:cn_office_professional_plus_2016_x86_x64_dvd_6969182.isoSHA1:277926A41B472EE3 ...

  6. java之扫描包里面的class文件

    一.class作为,编译过后的产物,在很多时候,我们需要通过反射去执行class的具体方法.但是扫描class就是一个很大的问题了. 二.所以我这里写了一个简单的class文件扫描方式. 三.主要是利 ...

  7. 深入解析thinkphp中的addAll方法

  8. CentOS 修改IP地址为静态IP

    vi  /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes NAME=eth0 ...

  9. struct to point

    关键知识点:结构体--新数据类型定义及结构体变量的定义与初始化, 结构体指针变量的定义及相关应用. 结构体变量作函数参数 指向结构体变量的指针变量. 数组与结构体间的渊源始末, 当一个整体由多个数据构 ...

  10. (2/24) 快速上手一个webpack的demo

    写在前面:该部分的安装都是基于windows系统的,且此处的webpack的版本为:3.6.0. 1.安装webpack 1.1 安装方法: 用win+R打开运行对话框,输入cmd进入命令行模式.然后 ...