JAVA 实现五种基本排序方法的实现以及时间的统计

简介: JAVA 实现五种基本排序方法的实现以及时间的统计
package test;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class sort {
  /**
   *Author:April
   *Date:2018.12.1
   *Version:0.1
   *Description:1、选择排序、冒泡排序、归并排序、快速排序、插入排序的算法原理。
   *            2.不同排序算法时间效率的经验分析方法,验证理论分析与经验分析的一致性。
   *
   */
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    func();   
  }
  private static void func() {
    // TODO Auto-generated method stub
    System.out.println("1.选择排序 2.冒泡排序 3.合并排序 4.快速排序  5.插入排序");
    @SuppressWarnings("resource")
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入要选择的字母:");
    int num = sc.nextInt();
    //int num  = sc.nextInt();
    switch(num){
    case 1:
      //System.out.println("1");
        select();
      break;
    case 2:
      bubble();
      break;
    case 3:
      merge();
      break;
    case 4:
      fast();
      break;
    case 5:
      insert();
      break;
    default:
      System.out.println("请输入正确的字母");
    }
  }
//插入排序
  private static void insert() {
    // TODO Auto-generated method stub
    //数据规模为10时
    double begin = System.currentTimeMillis(); // 程序开始时间,调用系统的当前时间
    int[] nums = new int[10];  //定义一个一维数组
      int count=0;
      while(count<10) {
       nums[count]=(int)(Math.random()*100);//产生100以内的随机数给nums
       count++;
      }
      //插入排序
      int insertNote;
      for (int i = 1; i < nums.length; i++) {// 从数组的第二个元素开始循环将数组中的元素插入
              insertNote = nums[i];// 设置数组中的第2个元素为第一次循环要插入的数据
              int j = i - 1;
              while ( j >= 0 && insertNote < nums[j]) {
                nums[j + 1] = nums[j];// 如果要插入的元素小于第j个元素,就将第j个元素向后移动
                  j--;
              }
              nums[j + 1] = insertNote;// 直到要插入的元素不小于第j个元素,将insertNote插入到数组中
          }
      System.out.println("数据规模为"+nums.length+"时");//数组长度
      System.out.println("排序后序列为:");
      for (int i = 0; i < nums.length; i++) {   //循环并打印出每个数组的数字
       System.out.print(nums[i]+"\t") ;
       }
      double end = System.currentTimeMillis(); // 程序结束时间,调用系统当前时间
      double time = end - begin;// 程序的运行时间    
      System.out.println("\n排序所花平均时间(ms):"+time / 60*1000 );
//数据规模为100时   
      double begin1 = System.currentTimeMillis(); // 程序开始时间,调用系统的当前时间
      int[] nums1 = new int[100];  //定义一个一维数组
        int count1=0;
        while(count1<100) {
         nums1[count1]=(int)(Math.random()*100);//产生100以内的随机数给nums
         count1++;
        }
        //插入排序
        int insertNote1;
        for (int i = 1; i < nums.length; i++) {// 从数组的第二个元素开始循环将数组中的元素插入
                insertNote1 = nums[i];// 设置数组中的第2个元素为第一次循环要插入的数据
                int j = i - 1;
                while ( j >= 0 && insertNote1 < nums[j]) {
                  nums[j + 1] = nums[j];// 如果要插入的元素小于第j个元素,就将第j个元素向后移动
                    j--;
                }
                nums[j + 1] = insertNote1;// 直到要插入的元素不小于第j个元素,将insertNote插入到数组中
            }
        System.out.println("数据规模为"+nums1.length+"时");//数组长度
        System.out.println("排序后序列为:");
        for (int i = 0; i < nums1.length; i++) {   //循环并打印出每个数组的数字
         System.out.print(nums1[i]+"\t") ;
         }
        double end1 = System.currentTimeMillis(); // 程序结束时间,调用系统当前时间
        double time1 = end1 - begin1;// 程序的运行时间   
        System.out.println("\n排序所花平均时间(ms):"+time1 / 60*1000 );
//数据规模为1000时
        double begin2 = System.currentTimeMillis(); // 程序开始时间,调用系统的当前时间
        int[] nums2 = new int[1000];  //定义一个一维数组
          int count2=0;
          while(count2<1000) {
            nums2[count2]=(int)(Math.random()*100);//产生100以内的随机数给nums
            count2++;
          }
          //插入排序
          int insertNote2;
          for (int i = 1; i < nums.length; i++) {// 从数组的第二个元素开始循环将数组中的元素插入
                  insertNote2 = nums[i];// 设置数组中的第2个元素为第一次循环要插入的数据
                  int j = i - 1;
                  while ( j >= 0 && insertNote2 < nums[j]) {
                    nums[j + 1] = nums[j];// 如果要插入的元素小于第j个元素,就将第j个元素向后移动
                      j--;
                  }
                  nums[j + 1] = insertNote2;// 直到要插入的元素不小于第j个元素,将insertNote插入到数组中
              }
          System.out.println("数据规模为"+nums2.length+"时");//数组长度
          System.out.println("排序后序列为:");
          for (int i = 0; i < nums2.length; i++) {   //循环并打印出每个数组的数字
           System.out.print(nums2[i]+"\t") ;
           }
          double end2 = System.currentTimeMillis(); // 程序结束时间,调用系统当前时间
          double time2 = end2 - begin2;// 程序的运行时间   
          System.out.println("\n排序所花平均时间(ms):"+time2 / 60*1000 );
//数据规模为10000时
          double begin3 = System.currentTimeMillis(); // 程序开始时间,调用系统的当前时间
          int[] nums3 = new int[10000];  //定义一个一维数组
            int count3=0;
            while(count3<10000) {
              nums3[count3]=(int)(Math.random()*100);//产生100以内的随机数给nums
              count3++;
            }
            //插入排序
            int insertNote3;
            for (int i = 1; i < nums.length; i++) {// 从数组的第二个元素开始循环将数组中的元素插入
                    insertNote3 = nums[i];// 设置数组中的第2个元素为第一次循环要插入的数据
                    int j = i - 1;
                    while ( j >= 0 && insertNote3 < nums[j]) {
                      nums[j + 1] = nums[j];// 如果要插入的元素小于第j个元素,就将第j个元素向后移动
                        j--;
                    }
                    nums[j + 1] = insertNote3;// 直到要插入的元素不小于第j个元素,将insertNote插入到数组中
                }
            System.out.println("数据规模为"+nums3.length+"时");//数组长度
            System.out.println("排序后序列为:");
            for (int i = 0; i < nums3.length; i++) {   //循环并打印出每个数组的数字
             System.out.print(nums3[i]+"\t") ;
             }
            double end3 = System.currentTimeMillis(); // 程序结束时间,调用系统当前时间
            double time3 = end3 - begin3;// 程序的运行时间   
            System.out.println("\n排序所花平均时间(ms):"+time3 / 60*1000 );
//数据规模为100000时
            double begin4 = System.currentTimeMillis(); // 程序开始时间,调用系统的当前时间
            int[] nums4 = new int[100000];  //定义一个一维数组
              int count4=0;
              while(count4<100000) {
                nums4[count4]=(int)(Math.random()*100);//产生100以内的随机数给nums
                count4++;
              }
              //插入排序
              int insertNote4;
              for (int i = 1; i < nums.length; i++) {// 从数组的第二个元素开始循环将数组中的元素插入
                      insertNote4 = nums[i];// 设置数组中的第2个元素为第一次循环要插入的数据
                      int j = i - 1;
                      while ( j >= 0 && insertNote4 < nums[j]) {
                        nums[j + 1] = nums[j];// 如果要插入的元素小于第j个元素,就将第j个元素向后移动
                          j--;
                      }
                      nums[j + 1] = insertNote4;// 直到要插入的元素不小于第j个元素,将insertNote插入到数组中
                  }
              System.out.println("数据规模为"+nums4.length+"时");//数组长度
//              System.out.println("排序后序列为:");
//              for (int i = 0; i < nums4.length; i++) {   //循环并打印出每个数组的数字
//               System.out.print(nums4[i]+"\t") ;
//               }
              double end4 = System.currentTimeMillis(); // 程序结束时间,调用系统当前时间
              double time4 = end4 - begin4;// 程序的运行时间   
              System.out.println("\n排序所花平均时间(ms):"+time4 / 60*1000 );
  }
//快速排序
  private static void fast() {
    // TODO Auto-generated method stub
  }
//合并排序
  private static void merge() {
    // TODO Auto-generated method stub
  }
//冒泡排序
  private static void bubble() {
    // TODO Auto-generated method stub
    //数据规模为10时
    double begin = System.currentTimeMillis(); // 程序开始时间,调用系统的当前时间
    int[] nums = new int[10];  //定义一个一维数组
      int count=0;
      while(count<10) {
       nums[count]=(int)(Math.random()*100);//产生100以内的随机数给nums
       count++;
      }
      //冒泡排序
    for (int i = 0; i < nums.length - 1; i++) {// 外层循环控制排序趟数
      for (int j = 0; j < nums.length - 1 - i; j++) {// 内层循环控制每一趟排序多少次
        if (nums[j] > nums[j + 1]) {
          int temp = nums[j];
          nums[j] = nums[j + 1];
          nums[j + 1] = temp;
        }
      }
    }
      System.out.println("数据规模为"+nums.length+"时");//数组长度
      System.out.println("排序后序列为:");
      for (int i = 0; i < nums.length; i++) {   //循环并打印出每个数组的数字
       System.out.print(nums[i]+"\t") ;
       }
      double end = System.currentTimeMillis(); // 程序结束时间,调用系统当前时间
      double time = end - begin;// 程序的运行时间    
      System.out.println("\n排序所花平均时间(ms):"+time / 60*1000 );
//数据规模为100时   
      double begin1 = System.currentTimeMillis(); // 程序开始时间,调用系统的当前时间
      int[] nums1 = new int[100];  //定义一个一维数组
        int count1=0;
        while(count1<100) {
         nums1[count1]=(int)(Math.random()*100);//产生100以内的随机数给nums
         count1++;
        }
        //冒泡排序
        for (int i = 0; i < nums.length - 1; i++) {// 外层循环控制排序趟数
          for (int j = 0; j < nums.length - 1 - i; j++) {// 内层循环控制每一趟排序多少次
            if (nums[j] > nums[j + 1]) {
              int temp = nums[j];
              nums[j] = nums[j + 1];
              nums[j + 1] = temp;
            }
          }
        }
        System.out.println("数据规模为"+nums1.length+"时");//数组长度
        System.out.println("排序后序列为:");
        for (int i = 0; i < nums1.length; i++) {   //循环并打印出每个数组的数字
         System.out.print(nums1[i]+"\t") ;
         }
        double end1 = System.currentTimeMillis(); // 程序结束时间,调用系统当前时间
        double time1 = end1 - begin1;// 程序的运行时间   
        System.out.println("\n排序所花平均时间(ms):"+time1 / 60*1000 );
//数据规模为1000时
        double begin2 = System.currentTimeMillis(); // 程序开始时间,调用系统的当前时间
        int[] nums2 = new int[1000];  //定义一个一维数组
          int count2=0;
          while(count2<1000) {
            nums2[count2]=(int)(Math.random()*100);//产生100以内的随机数给nums
            count2++;
          }
          //冒泡排序
          //冒泡排序
          for (int i = 0; i < nums.length - 1; i++) {// 外层循环控制排序趟数
            for (int j = 0; j < nums.length - 1 - i; j++) {// 内层循环控制每一趟排序多少次
              if (nums[j] > nums[j + 1]) {
                int temp = nums[j];
                nums[j] = nums[j + 1];
                nums[j + 1] = temp;
              }
            }
          }
          System.out.println("数据规模为"+nums2.length+"时");//数组长度
          System.out.println("排序后序列为:");
          for (int i = 0; i < nums2.length; i++) {   //循环并打印出每个数组的数字
           System.out.print(nums2[i]+"\t") ;
           }
          double end2 = System.currentTimeMillis(); // 程序结束时间,调用系统当前时间
          double time2 = end2 - begin2;// 程序的运行时间   
          System.out.println("\n排序所花平均时间(ms):"+time2 / 60*1000 );
//数据规模为10000时
          double begin3 = System.currentTimeMillis(); // 程序开始时间,调用系统的当前时间
          int[] nums3 = new int[10000];  //定义一个一维数组
            int count3=0;
            while(count3<10000) {
              nums3[count3]=(int)(Math.random()*100);//产生100以内的随机数给nums
              count3++;
            }
            //冒泡排序
            //冒泡排序
            for (int i = 0; i < nums.length - 1; i++) {// 外层循环控制排序趟数
              for (int j = 0; j < nums.length - 1 - i; j++) {// 内层循环控制每一趟排序多少次
                if (nums[j] > nums[j + 1]) {
                  int temp = nums[j];
                  nums[j] = nums[j + 1];
                  nums[j + 1] = temp;
                }
              }
            }
            System.out.println("数据规模为"+nums3.length+"时");//数组长度
            System.out.println("排序后序列为:");
            for (int i = 0; i < nums3.length; i++) {   //循环并打印出每个数组的数字
             System.out.print(nums3[i]+"\t") ;
             }
            double end3 = System.currentTimeMillis(); // 程序结束时间,调用系统当前时间
            double time3 = end3 - begin3;// 程序的运行时间   
            System.out.println("\n排序所花平均时间(ms):"+time3 / 60*1000 );
//数据规模为100000时
            double begin4 = System.currentTimeMillis(); // 程序开始时间,调用系统的当前时间
            int[] nums4 = new int[100000];  //定义一个一维数组
              int count4=0;
              while(count4<100000) {
                nums4[count4]=(int)(Math.random()*100);//产生100以内的随机数给nums
                count4++;
              }
              //冒泡排序
              for (int i = 0; i < nums.length - 1; i++) {// 外层循环控制排序趟数
                for (int j = 0; j < nums.length - 1 - i; j++) {// 内层循环控制每一趟排序多少次
                  if (nums[j] > nums[j + 1]) {
                    int temp = nums[j];  //temp是用于交换时的临时变量
                    nums[j] = nums[j + 1];
                    nums[j + 1] = temp;
                  }
                }
              }
              System.out.println("数据规模为"+nums4.length+"时");//数组长度
//              System.out.println("排序后序列为:");
//              for (int i = 0; i < nums4.length; i++) {   //循环并打印出每个数组的数字
//               System.out.print(nums4[i]+"\t") ;
//               }
              double end4 = System.currentTimeMillis(); // 程序结束时间,调用系统当前时间
              double time4 = end4 - begin4;// 程序的运行时间   
              System.out.println("\n排序所花平均时间(ms):"+time4 / 60*1000 );
  }
//选择排序
  private static void select() {  
    // TODO Auto-generated method stub
    //数据规模为10时
    double begin = System.currentTimeMillis(); // 程序开始时间,调用系统的当前时间
    int[] nums = new int[10];  //定义一个一维数组
      int count=0;
      while(count<10) {
       nums[count]=(int)(Math.random()*100);//产生100以内的随机数给nums
       count++;
      }
      //选择排序
      for(int i = 0; i < nums.length-1; ++i){  //外层循环数组寻找最小的数
              int k = i;
              for(int j = i; j < nums.length; ++j){  //内层循环,做比较
                  if(nums[k] > nums[j]){  //若j比k小,则把j放入前面的位置
                      k = j;
                  }
              }
              if(k != i){  //交换元素
                  int temp = nums[i];  //temp是用于交换时的临时变量
                  nums[i] = nums[k];
                  nums[k] = temp;
              }
          }
      System.out.println("数据规模为"+nums.length+"时");//数组长度
      System.out.println("排序后序列为:");
      for (int i = 0; i < nums.length; i++) {   //循环并打印出每个数组的数字
       System.out.print(nums[i]+"\t") ;
       }
      double end = System.currentTimeMillis(); // 程序结束时间,调用系统当前时间
      double time = end - begin;// 程序的运行时间    
      System.out.println("\n排序所花平均时间(ms):"+time / 60*1000 );
//数据规模为100时   
      double begin1 = System.currentTimeMillis(); // 程序开始时间,调用系统的当前时间
      int[] nums1 = new int[100];  //定义一个一维数组
        int count1=0;
        while(count1<100) {
         nums1[count1]=(int)(Math.random()*100);//产生100以内的随机数给nums
         count1++;
        }
        //选择排序
        for(int i = 0; i < nums1.length-1; ++i){  //外层循环数组寻找最小的数
                int k = i;
                for(int j = i; j < nums1.length; ++j){  //内层循环,做比较
                    if(nums1[k] > nums1[j]){  //若j比k小,则把j放入前面的位置
                        k = j;
                    }
                }
                if(k != i){  //交换元素
                    int temp = nums1[i];  //temp是用于交换时的临时变量
                    nums1[i] = nums1[k];
                    nums1[k] = temp;
                }
            }
        System.out.println("数据规模为"+nums1.length+"时");//数组长度
        System.out.println("排序后序列为:");
        for (int i = 0; i < nums1.length; i++) {   //循环并打印出每个数组的数字
         System.out.print(nums1[i]+"\t") ;
         }
        double end1 = System.currentTimeMillis(); // 程序结束时间,调用系统当前时间
        double time1 = end1 - begin1;// 程序的运行时间   
        System.out.println("\n排序所花平均时间(ms):"+time1 / 60*1000 );
//数据规模为1000时
        double begin2 = System.currentTimeMillis(); // 程序开始时间,调用系统的当前时间
        int[] nums2 = new int[1000];  //定义一个一维数组
          int count2=0;
          while(count2<1000) {
            nums2[count2]=(int)(Math.random()*100);//产生100以内的随机数给nums
            count2++;
          }
          //选择排序
          for(int i = 0; i < nums2.length-1; ++i){  //外层循环数组寻找最小的数
                  int k = i;
                  for(int j = i; j < nums2.length; ++j){  //内层循环,做比较
                      if(nums2[k] > nums2[j]){  //若j比k小,则把j放入前面的位置
                          k = j;
                      }
                  }
                  if(k != i){  //交换元素
                      int temp = nums2[i];  //temp是用于交换时的临时变量
                      nums2[i] = nums2[k];
                      nums2[k] = temp;
                  }
              }
          System.out.println("数据规模为"+nums2.length+"时");//数组长度
          System.out.println("排序后序列为:");
          for (int i = 0; i < nums2.length; i++) {   //循环并打印出每个数组的数字
           System.out.print(nums2[i]+"\t") ;
           }
          double end2 = System.currentTimeMillis(); // 程序结束时间,调用系统当前时间
          double time2 = end2 - begin2;// 程序的运行时间   
          System.out.println("\n排序所花平均时间(ms):"+time2 / 60*1000 );
//数据规模为10000时
          double begin3 = System.currentTimeMillis(); // 程序开始时间,调用系统的当前时间
          int[] nums3 = new int[10000];  //定义一个一维数组
            int count3=0;
            while(count3<10000) {
              nums3[count3]=(int)(Math.random()*100);//产生100以内的随机数给nums
              count3++;
            }
            //选择排序
            for(int i = 0; i < nums3.length-1; ++i){  //外层循环数组寻找最小的数
                    int k = i;
                    for(int j = i; j < nums3.length; ++j){  //内层循环,做比较
                        if(nums3[k] > nums3[j]){  //若j比k小,则把j放入前面的位置
                            k = j;
                        }
                    }
                    if(k != i){  //交换元素
                        int temp = nums3[i];  //temp是用于交换时的临时变量
                        nums3[i] = nums3[k];
                        nums3[k] = temp;
                    }
                }
            System.out.println("数据规模为"+nums3.length+"时");//数组长度
            System.out.println("排序后序列为:");
            for (int i = 0; i < nums3.length; i++) {   //循环并打印出每个数组的数字
             System.out.print(nums3[i]+"\t") ;
             }
            double end3 = System.currentTimeMillis(); // 程序结束时间,调用系统当前时间
            double time3 = end3 - begin3;// 程序的运行时间   
            System.out.println("\n排序所花平均时间(ms):"+time3 / 60*1000 );
//数据规模为100000时
            double begin4 = System.currentTimeMillis(); // 程序开始时间,调用系统的当前时间
            int[] nums4 = new int[100000];  //定义一个一维数组
              int count4=0;
              while(count4<100000) {
                nums4[count4]=(int)(Math.random()*100);//产生100以内的随机数给nums
                count4++;
              }
              //选择排序
              for(int i = 0; i < nums4.length-1; ++i){  //外层循环数组寻找最小的数
                      int k = i;
                      for(int j = i; j < nums4.length; ++j){  //内层循环,做比较
                          if(nums4[k] > nums4[j]){  //若j比k小,则把j放入前面的位置
                              k = j;
                          }
                      }
                      if(k != i){  //交换元素
                          int temp = nums4[i];  //temp是用于交换时的临时变量
                          nums4[i] = nums4[k];
                          nums4[k] = temp;
                      }
                  }
              System.out.println("数据规模为"+nums4.length+"时");//数组长度
//              System.out.println("排序后序列为:");
//              for (int i = 0; i < nums4.length; i++) {   //循环并打印出每个数组的数字
//               System.out.print(nums4[i]+"\t") ;
//               }
              double end4 = System.currentTimeMillis(); // 程序结束时间,调用系统当前时间
              double time4 = end4 - begin4;// 程序的运行时间   
              System.out.println("\n排序所花平均时间(ms):"+time4 / 60*1000 );
  }
}
相关文章
|
1月前
|
算法 Java 开发者
Java 项目实战数字华容道与石头迷阵游戏开发详解及实战方法
本文介绍了使用Java实现数字华容道和石头迷阵游戏的技术方案与应用实例,涵盖GUI界面设计、二维数组操作、游戏逻辑控制及自动解法算法(如A*),适合Java开发者学习游戏开发技巧。
191 46
|
2月前
|
安全 Java API
Java 集合高级应用与实战技巧之高效运用方法及实战案例解析
本课程深入讲解Java集合的高级应用与实战技巧,涵盖Stream API、并行处理、Optional类、现代化Map操作、不可变集合、异步处理及高级排序等核心内容,结合丰富示例,助你掌握Java集合的高效运用,提升代码质量与开发效率。
202 0
|
2月前
|
算法 搜索推荐 Java
Java中的Collections.shuffle()方法及示例
`Collections.shuffle()` 是 Java 中用于随机打乱列表顺序的方法,基于 Fisher-Yates 算法实现,支持原地修改。可选传入自定义 `Random` 对象以实现结果可重复,适用于抽奖、游戏、随机抽样等场景。
119 0
|
2月前
|
安全 Java
JAVA:Collections类的shuffle()方法
`Collections.shuffle()` 是 Java 中用于随机打乱列表顺序的工具方法,适用于洗牌、抽奖等场景。该方法直接修改原列表,支持自定义随机数生成器以实现可重现的打乱顺序。使用时需注意其原地修改特性及非线程安全性。
130 0
|
2月前
|
算法 安全 Java
java中Collections.shuffle方法的功能说明
`Collections.shuffle()` 是 Java 中用于随机打乱列表顺序的方法,基于 Fisher-Yates 算法实现,常用于洗牌、抽奖等场景。可选 `Random` 参数支持固定种子以实现可重复的随机顺序。方法直接修改原列表,无返回值。
116 0
|
2月前
|
Java 程序员 项目管理
Java 程序员不容错过的 Git Flow 全套学习资料及应用方法详解 Git Flow
本文详细介绍了Git Flow技术方案及其在Java项目中的应用实例,涵盖分支管理、版本发布与紧急修复流程,帮助开发者掌握高效的代码管理方法,提升团队协作效率。附示例操作及代码下载链接。
79 0
|
2月前
|
安全 Java API
Java 17 及以上版本核心特性在现代开发实践中的深度应用与高效实践方法 Java 开发实践
本项目以“学生成绩管理系统”为例,深入实践Java 17+核心特性与现代开发技术。采用Spring Boot 3.1、WebFlux、R2DBC等构建响应式应用,结合Record类、模式匹配、Stream优化等新特性提升代码质量。涵盖容器化部署(Docker)、自动化测试、性能优化及安全加固,全面展示Java最新技术在实际项目中的应用,助力开发者掌握现代化Java开发方法。
124 1
|
2月前
|
Java 索引
Java ArrayList中的常见删除操作及方法详解。
通过这些方法,Java `ArrayList` 提供了灵活而强大的操作来处理元素的移除,这些方法能够满足不同场景下的需求。
374 30
|
2月前
|
监控 Java API
Java语言按文件创建日期排序及获取最新文件的技术
这段代码实现了文件创建时间的读取、文件列表的获取与排序以及获取最新文件的需求。它具备良好的效率和可读性,对于绝大多数处理文件属性相关的需求来说足够健壮。在实际应用中,根据具体情况,可能还需要进一步处理如访问权限不足、文件系统不支持某些属性等边界情况。
182 14
|
2月前
|
前端开发 JavaScript Java
Java 开发中 Swing 界面嵌入浏览器实现方法详解
摘要:Java中嵌入浏览器可通过多种技术实现:1) JCEF框架利用Chromium内核,适合复杂网页;2) JEditorPane组件支持简单HTML显示,但功能有限;3) DJNativeSwing-SWT可内嵌浏览器,需特定内核支持;4) JavaFX WebView结合Swing可完美支持现代网页技术。每种方案各有特点,开发者需根据项目需求选择合适方法,如JCEF适合高性能要求,JEditorPane适合简单展示。(149字)
287 1