一道常考的javaSE面试题

就这道题我也想些想法,当时他们和我说完,我在想用什么方法可以实现。毕竟现在javaSE都忘的差不多了,现在主要学的还是javaEE方面。年前学习JSP和SERVLET一片的知识,到了年后主要学习三大框架、ajax、jquery和XML等。不过当时出现脑中的算法只有:java.util包中定义的Arrays类和冒泡法。

下面就拿上面方说的那两种方法具体说说。

在JDK的java.util包中定义的Arrays类提供了多种数据操作方法,实现了对数组元素的排序、填充、转换、增强检索和深度比较等功能,所以的这些方法都是static的,下面介绍对数组元素进行排序的方法。数组元素的排序通常是指一维数值型数组元素按升序排序,偶尔也会涉及一维String数组排序,一般来说,多维和其他引用类型的元素数组排序使用意义不大。

Arrays类中的sort()的格式:

public static void sort([] a);

案例1:

JDK的java.util包中定义的Arrays类提供了排序方法

一维数组排序:

Java代码

 
 
  1. packagecn.z_xiaofei168.sort;
  2. importjava.util.Arrays;
  3. publicclassTestArraySort{
  4. /**
  5. *@authorz_xiaofei168
  6. */
  7. publicstaticvoidmain(String[]args){
  8. int[]arr={-1,-3,5,7,9,2,4,6,8,10};
  9. System.out.print("整数排序前:");
  10. displayIntArr(arr);
  11. Arrays.sort(arr);
  12. System.out.print("整数排序后:");
  13. displayIntArr(arr);
  14. String[]name={"Tom","Kitty","James","z_xiaofei168","DXL_xiaoli","Zhang_Di"};
  15. System.out.print("字符串排序前:");
  16. displayStringArr(name);
  17. Arrays.sort(name);
  18. System.out.print("字符串排序后:");
  19. displayStringArr(name);
  20. }
  21. /**整数排序方法*/
  22. publicstaticvoiddisplayIntArr(int[]arr){
  23. for(inti:arr){
  24. System.out.print(i+"\t");
  25. }
  26. System.out.println();
  27. }
  28. /**字符串排序方法*/
  29. publicstaticvoiddisplayStringArr(String[]arr){
  30. for(Strings:arr){
  31. System.out.print(s+"\t");
  32. }
  33. System.out.println();
  34. }
  35. }

运行结果如下图所示:

一道常考的javaSE面试题_第1张图片

案例2:冒泡法

Java代码

 
 
  1. packagecn.z_xiaofei168.sort;
  2. publicclassTestMaopao{
  3. /**
  4. *@authorz_xiaofei168
  5. */
  6. publicstaticvoidmain(String[]args){
  7. int[]arr={-1,-3,5,7,9,2,4,6,8,10};
  8. System.out.print("整数排序前:");
  9. for(intar:arr){
  10. System.out.print(ar+"\t");
  11. }
  12. System.out.println();
  13. displayIntArr(arr);
  14. System.out.print("整数排序后:");
  15. for(inta:arr){
  16. System.out.print(a+"\t");
  17. }
  18. }
  19. /**冒泡排序方法*/
  20. publicstaticvoiddisplayIntArr(int[]arr){
  21. for(inti=arr.length-1;i>0;i--){
  22. for(intj=0;j<i;j++){
  23. if(arr[j]>arr[j+1]){
  24. inttemp;
  25. temp=arr[j];
  26. arr[j]=arr[j+1];
  27. arr[j+1]=temp;
  28. }
  29. }
  30. }
  31. }
  32. }

运行结果如下图所示:

大家还有什么方法可以实现这个功能,请大家给我留言。以至于我们共同学习、共同进步。

你可能感兴趣的:(JavaSE)