当前位置:   article > 正文

java基础进阶之数组排序-可能有你不知道的哦!!_java 降序和升序

java 降序和升序

1、使用Arrays类的sort方法

1.1、默认升序

        java中Arrays类提供了sort方法来进行快速排序,默认是升序的。

Arrays.sort(数组名)

  1. private static void ArrSort1(int[] arr) {
  2. Arrays.sort(arr);
  3. System.out.println("快速排序-默认升序:"+Arrays.toString(arr));
  4. }

1.2、降序        

如果需要降序,写法如下:

//数组类型不能是基本数据类型

 Arrays.sort(数组名,Collections.reverseOrder())

  1. private static void ArrSort2(int[] arr) {
  2. //数组类型不能是基本数据类型
  3. Integer[] arrayInteger = Arrays.stream(arr).boxed().toArray(Integer[]::new);
  4. Arrays.sort(arrayInteger, Collections.reverseOrder());
  5. System.out.println("快速排序-降序:"+Arrays.toString(arrayInteger));
  6. }

1.3、区间排序        

如果需要区间排序,写法如下:

//formIndex起始位置,toIndex结束位置

Arrays.sort(数组名,int formIndex, int toIndex)

  1. private static void ArrSort3(int[] arr) {
  2. Arrays.sort(arr,1, 3);
  3. System.out.println("快速排序-区间排序:"+Arrays.toString(arr));
  4. }

1.4、重载排序

//数组类型不能是基本数据类型

Arrays.sort(数组名, new Comparator<数据类型对应的类>() {
    @Override
    public int compare(数据类型对应的类 o1, 数据类型对应的类 o2) {
        return 重载方式;
    }
});

  1. private static void ArrSort4(int[] arr) {
  2. Integer[] arrayInteger = Arrays.stream(arr).boxed().toArray(Integer[]::new);
  3. Arrays.sort(arrayInteger, new Comparator<Integer>() {
  4. @Override
  5. public int compare(Integer o1, Integer o2) {
  6. return o2 - o1;
  7. }
  8. });
  9. System.out.println("快速排序-重载排序:"+Arrays.toString(arrayInteger));
  10. }
  11. private static void ArrSort5(int[] arr) {
  12. Integer[] arrayInteger = Arrays.stream(arr).boxed().toArray(Integer[]::new);
  13. //lambda表达式
  14. Arrays.sort(arrayInteger, (o1, o2) -> o2 - o1);
  15. System.out.println("快速排序-重载排序:"+Arrays.toString(arrayInteger));
  16. }

2、冒泡排序

        冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

        它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

        这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

2.1、原理

冒泡排序的原理如下:

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。

  2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

  3. 针对所有的元素重复以上的步骤,除了最后一个。

  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

2.2、示例图

2.3、时间复杂度

2.4、稳定性

        冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,是不会再交换的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法

2.5、示例

  1. private static void ArrSortM(int[] arr) {
  2. for (int i = 0; i < arr.length - 1; i++) {
  3. for (int j = 0; j < arr.length - 1 - i; j++) {
  4. // 升序:如果左边的数大于右边的数,则交换,保证右边的数字最大
  5. // 降序:如果左边的数小于右边的数,则交换,保证右边的数字最小
  6. if (arr[j] > arr[j + 1]) {
  7. int temp = arr[j];
  8. arr[j] = arr[j + 1];
  9. arr[j + 1] = temp;
  10. }
  11. }
  12. }
  13. System.out.println("冒泡排序:"+Arrays.toString(arr));
  14. }
  15. private static void ArrSortM1(int[] arr) {
  16. // 初始时 swapped 为 true,否则排序过程无法启动
  17. boolean swapped = true;
  18. for (int i = 0; i < arr.length - 1; i++) {
  19. // 如果没有发生过交换,说明剩余部分已经有序,排序完成
  20. if (!swapped) break;
  21. // 设置 swapped 为 false,如果发生交换,则将其置为 true
  22. swapped = false;
  23. for (int j = 0; j < arr.length - 1 - i; j++) {
  24. if (arr[j] > arr[j + 1]) {
  25. // 如果左边的数大于右边的数,则交换,保证右边的数字最大
  26. int temp = arr[j];
  27. arr[j] = arr[j + 1];
  28. arr[j + 1] = temp;
  29. // 表示发生了交换
  30. swapped = true;
  31. }
  32. }
  33. }
  34. System.out.println("冒泡排序1:"+Arrays.toString(arr));
  35. }
  36. private static void ArrSortM2(int[] arr) {
  37. for (int i = 0; i < arr.length - 1; i++) {
  38. for (int j = 0; j < arr.length - 1 - i; j++) {
  39. // 不添加参数的写法
  40. // 升序:如果左边的数大于右边的数,则交换,保证右边的数字最大
  41. // 降序:如果左边的数小于右边的数,则交换,保证右边的数字最小
  42. if (arr[j] > arr[j + 1]) {
  43. arr[j + 1] = arr[j + 1] + arr[j];
  44. arr[j] = arr[j + 1] - arr[j];
  45. arr[j + 1] = arr[j + 1] - arr[j];
  46. }
  47. }
  48. }
  49. System.out.println("冒泡排序2:"+Arrays.toString(arr));
  50. }
  51. private static void ArrSortM3(int[] arr) {
  52. boolean swapped = true;
  53. // 最后一个没有经过排序的元素的下标
  54. int indexOfLastUnsortedElement = arr.length - 1;
  55. // 上次发生交换的位置
  56. int swappedIndex = -1;
  57. while (swapped) {
  58. swapped = false;
  59. for (int i = 0; i < indexOfLastUnsortedElement; i++) {
  60. if (arr[i] > arr[i + 1]) {
  61. // 如果左边的数大于右边的数,则交换,保证右边的数字最大
  62. int temp = arr[i];
  63. arr[i] = arr[i + 1];
  64. arr[i + 1] = temp;
  65. // 表示发生了交换
  66. swapped = true;
  67. // 更新交换的位置
  68. swappedIndex = i;
  69. }
  70. }
  71. // 最后一个没有经过排序的元素的下标就是最后一次发生交换的位置
  72. indexOfLastUnsortedElement = swappedIndex;
  73. }
  74. System.out.println("冒泡排序3:"+Arrays.toString(arr));
  75. }

3、选择排序

3.1、原理

选择排序:通过不断选择数组中最小的元素,并将其放置在已排序部分的末尾,逐渐构建有序数组。

 3.2、示例图

 

3.3、时间复杂度

        选择排序的交换操作介于 0 和 (n - 1)次之间。选择排序的比较操作为 n (n - 1) / 2 次之间。选择排序的赋值操作介于 0 和 3 (n - 1) 次之间。比较次数O(n^2),比较次数与关键字的初始状态无关,总的比较次数N=(n-1)+(n-2)+...+1=n*(n-1)/2。交换次数O(n),最好情况是,已经有序,交换0次;最坏情况交换n-1次,逆序交换n/2次。交换次数比冒泡排序少多了,由于交换所需CPU时间比比较所需的CPU时间多,n值较小时,选择排序比冒泡排序快。

3.4、稳定性

        选择排序是给每个位置选择当前元素最小的,比如给第一个位置选择最小的,在剩余元素里面给第二个元素选择第二小的,依次类推,直到第n-1个元素,第n个元素不用选择了,因为只剩下它一个最大的元素了。那么,在一趟选择,如果一个元素比当前元素小,而该小的元素又出现在一个和当前元素相等的元素后面,那么交换后稳定性就被破坏了。举个例子,序列5 8 5 2 9,我们知道第一遍选择第1个元素5会和2交换,那么原序列中两个5的相对前后顺序就被破坏了,所以选择排序是一个不稳定的排序算法

3.5、二元选择排序

        二元选择排序,每轮选择时记录最小值和最大值,可以把选择排序的效率提升一点,由于每一轮遍历可以排好两个数字,所以最外层的遍历只需遍历一半即可。

        经过优化之后,选择排序的效率提升了一点。但可惜的是,这样的优化无法改变时间复杂度,我们知道时间复杂度与常量系数无关,仍然是 O(n^2)。

3.6、示例

  1. private static void ArrSortX(int[] arr) {
  2. for (int i = 0; i < arr.length - 1; i++) {
  3. int minIndex = i;
  4. for (int j = i + 1; j < arr.length; j++) {
  5. if (arr[j] < arr[minIndex]) {
  6. minIndex = j;
  7. }
  8. }
  9. int temp = arr[i];
  10. arr[i] = arr[minIndex];
  11. arr[minIndex] = temp;
  12. }
  13. System.out.println("选择排序:"+ Arrays.toString(arr));
  14. }
  15. private static void ArrSortX1(int[] arr) {
  16. int minIndex, maxIndex;
  17. // i 只需要遍历一半
  18. for (int i = 0; i < arr.length / 2; i++) {
  19. minIndex = i;
  20. maxIndex = i;
  21. for (int j = i + 1; j < arr.length - i; j++) {
  22. if (arr[minIndex] > arr[j]) {
  23. // 记录最小值的下标
  24. minIndex = j;
  25. }
  26. if (arr[maxIndex] < arr[j]) {
  27. // 记录最大值的下标
  28. maxIndex = j;
  29. }
  30. }
  31. // 将最小元素交换至首位
  32. int temp = arr[i];
  33. arr[i] = arr[minIndex];
  34. arr[minIndex] = temp;
  35. // 如果最大值的下标刚好是 i,由于 arr[i] 和 arr[minIndex] 已经交换了,所以这里要更新 maxIndex 的值。
  36. if (maxIndex == i) maxIndex = minIndex;
  37. // 将最大元素交换至末尾
  38. int lastIndex = arr.length - 1 - i;
  39. temp = arr[lastIndex];
  40. arr[lastIndex] = arr[maxIndex];
  41. arr[maxIndex] = temp;
  42. }
  43. System.out.println("选择排序1:"+ Arrays.toString(arr));
  44. }

4、插入排序

4.1、原理

        插入排序的思想非常简单,生活中有一个非常常见的场景:在打扑克牌时,我们一边抓牌一边给扑克牌排序,每次摸一张牌,就将它插入手上已有的牌中合适的位置,逐渐完成整个排序。

4.2、示例图

4.3、时间复杂度

        在插入排序中,当待排序数组是有序时,是最优的情况,只需当前数跟前一个数比较一下就可以了,这时一共需要比较N- 1次,时间复杂度为O(N)  

        最坏的情况是待排序数组是逆序的,此时需要比较次数最多,总次数记为:1+2+3+…+N-1,所以,插入排序最坏情况下的时间复杂度为0(N*N)

        平均来说,A[1..j-1]中的一半元素小于A[j],一半元素大于A[j]。插入排序在平均情况运行时间与最坏情况运行时间一样,是输入规模的二次函数。

4.4、稳定性

        如果待排序的序列中存在两个或两个以上具有相同关键词的数据,排序后这些数据的相对次序保持不变,即它们的位置保持不变,通俗地讲,就是两个相同的数的相对顺序不会发生改变,则该算法是稳定的;如果排序后,数据的相对次序发生了变化,则该算法是不稳定的。关键词相同的数据元素将保持原有位置不变,所以该算法是稳定的。

4.5、示例

  1. private static void ArrSortC(int[] arr) {
  2. for (int i = 1; i < arr.length; i++) {
  3. int key = arr[i];
  4. int j = i - 1;
  5. while (j >= 0 && arr[j] > key) {
  6. arr[j + 1] = arr[j];
  7. j--;
  8. }
  9. arr[j + 1] = key;
  10. }
  11. }

5、快速排序

        通过选择一个基准元素,将数组分成两部分,一部分小于基准元素,一部分大于基准元素,然后递归地对两部分进行排序。示例代码如下:

  1. private static void ArrSortK(int[] arr, int low, int high) {
  2. if (low < high) {
  3. int pivotIndex = partition(arr, low, high);
  4. ArrSortK(arr, low, pivotIndex - 1);
  5. ArrSortK(arr, pivotIndex + 1, high);
  6. }
  7. System.out.println("快速排序:"+Arrays.toString(arr));
  8. }
  9. private static int partition(int[] arr, int low, int high) {
  10. int pivot = arr[high];
  11. int i = low - 1;
  12. for (int j = low; j < high; j++) {
  13. if (arr[j] < pivot) {
  14. i++;
  15. int temp = arr[i];
  16. arr[i] = arr[j];
  17. arr[j] = temp;
  18. }
  19. }
  20. int temp = arr[i + 1];
  21. arr[i + 1] = arr[high];
  22. arr[high] = temp;
  23. return i + 1;
  24. }

6、归并排序

        通过将数组分成两部分,分别对两部分进行排序,然后将两个有序的部分合并成一个有序数组。示例代码如下:

  1. private static void ArrSortG(int[] arr, int low, int high) {
  2. if (low < high) {
  3. int mid = (low + high) / 2;
  4. ArrSortG(arr, low, mid);
  5. ArrSortG(arr, mid + 1, high);
  6. merge(arr, low, mid, high);
  7. }
  8. System.out.println("归并排序:"+Arrays.toString(arr));
  9. }
  10. private static void merge(int[] array, int low, int mid, int high) {
  11. int[] temp = new int[high - low + 1];
  12. int i = low;
  13. int j = mid + 1;
  14. int k = 0;
  15. while (i <= mid && j <= high) {
  16. if (array[i] <= array[j]) {
  17. temp[k++] = array[i++];
  18. } else {
  19. temp[k++] = array[j++];
  20. }
  21. }
  22. while (i <= mid) {
  23. temp[k++] = array[i++];
  24. }
  25. while (j <= high) {
  26. temp[k++] = array[j++];
  27. }
  28. for (int m = 0; m < temp.length; m++) {
  29. array[low + m] = temp[m];
  30. }
  31. }

 整体代码

  1. import java.util.Arrays;
  2. import java.util.Collections;
  3. import java.util.Comparator;
  4. public class TestArray2 {
  5. public static void main(String[] args) {
  6. int[] arr = {3, 2, 1, 5, 4};
  7. System.out.println("arr:"+Arrays.toString(arr));
  8. //输出方式
  9. //extracted(arr);
  10. //方法一:快速排序
  11. ArrSort1(arr);
  12. // ArrSort2(arr);
  13. // ArrSort3(arr);
  14. // ArrSort4(arr);
  15. // ArrSort5(arr);
  16. //方法二:冒泡方法
  17. // ArrSortM(arr);
  18. // ArrSortM1(arr);
  19. // ArrSortM2(arr);
  20. // ArrSortM3(arr);
  21. //方法三:选择排序
  22. // ArrSortX(arr);
  23. // ArrSortX1(arr);
  24. //方法四:插入排序
  25. // ArrSortC(arr);
  26. //方法五:快速排序
  27. // ArrSortK(arr,0,arr.length-1);
  28. //方法六:归并排序
  29. // ArrSortG(arr,0,arr.length-1);
  30. }
  31. private static void ArrSortG(int[] arr, int low, int high) {
  32. if (low < high) {
  33. int mid = (low + high) / 2;
  34. ArrSortG(arr, low, mid);
  35. ArrSortG(arr, mid + 1, high);
  36. merge(arr, low, mid, high);
  37. }
  38. System.out.println("归并排序:"+Arrays.toString(arr));
  39. }
  40. private static void merge(int[] array, int low, int mid, int high) {
  41. int[] temp = new int[high - low + 1];
  42. int i = low;
  43. int j = mid + 1;
  44. int k = 0;
  45. while (i <= mid && j <= high) {
  46. if (array[i] <= array[j]) {
  47. temp[k++] = array[i++];
  48. } else {
  49. temp[k++] = array[j++];
  50. }
  51. }
  52. while (i <= mid) {
  53. temp[k++] = array[i++];
  54. }
  55. while (j <= high) {
  56. temp[k++] = array[j++];
  57. }
  58. for (int m = 0; m < temp.length; m++) {
  59. array[low + m] = temp[m];
  60. }
  61. }
  62. private static void ArrSortK(int[] arr, int low, int high) {
  63. if (low < high) {
  64. int pivotIndex = partition(arr, low, high);
  65. ArrSortK(arr, low, pivotIndex - 1);
  66. ArrSortK(arr, pivotIndex + 1, high);
  67. }
  68. System.out.println("快速排序:"+Arrays.toString(arr));
  69. }
  70. private static int partition(int[] arr, int low, int high) {
  71. int pivot = arr[high];
  72. int i = low - 1;
  73. for (int j = low; j < high; j++) {
  74. if (arr[j] < pivot) {
  75. i++;
  76. int temp = arr[i];
  77. arr[i] = arr[j];
  78. arr[j] = temp;
  79. }
  80. }
  81. int temp = arr[i + 1];
  82. arr[i + 1] = arr[high];
  83. arr[high] = temp;
  84. return i + 1;
  85. }
  86. private static void ArrSortC(int[] arr) {
  87. for (int i = 1; i < arr.length; i++) {
  88. int key = arr[i];
  89. int j = i - 1;
  90. while (j >= 0 && arr[j] > key) {
  91. arr[j + 1] = arr[j];
  92. j--;
  93. }
  94. arr[j + 1] = key;
  95. }
  96. }
  97. private static void ArrSortX(int[] arr) {
  98. for (int i = 0; i < arr.length - 1; i++) {
  99. int minIndex = i;
  100. for (int j = i + 1; j < arr.length; j++) {
  101. if (arr[j] < arr[minIndex]) {
  102. minIndex = j;
  103. }
  104. }
  105. int temp = arr[i];
  106. arr[i] = arr[minIndex];
  107. arr[minIndex] = temp;
  108. }
  109. System.out.println("选择排序:"+ Arrays.toString(arr));
  110. }
  111. private static void ArrSortX1(int[] arr) {
  112. int minIndex, maxIndex;
  113. // i 只需要遍历一半
  114. for (int i = 0; i < arr.length / 2; i++) {
  115. minIndex = i;
  116. maxIndex = i;
  117. for (int j = i + 1; j < arr.length - i; j++) {
  118. if (arr[minIndex] > arr[j]) {
  119. // 记录最小值的下标
  120. minIndex = j;
  121. }
  122. if (arr[maxIndex] < arr[j]) {
  123. // 记录最大值的下标
  124. maxIndex = j;
  125. }
  126. }
  127. // 将最小元素交换至首位
  128. int temp = arr[i];
  129. arr[i] = arr[minIndex];
  130. arr[minIndex] = temp;
  131. // 如果最大值的下标刚好是 i,由于 arr[i] 和 arr[minIndex] 已经交换了,所以这里要更新 maxIndex 的值。
  132. if (maxIndex == i) maxIndex = minIndex;
  133. // 将最大元素交换至末尾
  134. int lastIndex = arr.length - 1 - i;
  135. temp = arr[lastIndex];
  136. arr[lastIndex] = arr[maxIndex];
  137. arr[maxIndex] = temp;
  138. }
  139. System.out.println("选择排序1:"+ Arrays.toString(arr));
  140. }
  141. private static void ArrSortM(int[] arr) {
  142. for (int i = 0; i < arr.length - 1; i++) {
  143. for (int j = 0; j < arr.length - 1 - i; j++) {
  144. // 升序:如果左边的数大于右边的数,则交换,保证右边的数字最大
  145. // 降序:如果左边的数小于右边的数,则交换,保证右边的数字最小
  146. if (arr[j] > arr[j + 1]) {
  147. int temp = arr[j];
  148. arr[j] = arr[j + 1];
  149. arr[j + 1] = temp;
  150. }
  151. }
  152. }
  153. System.out.println("冒泡排序:"+Arrays.toString(arr));
  154. }
  155. private static void ArrSortM1(int[] arr) {
  156. // 初始时 swapped 为 true,否则排序过程无法启动
  157. boolean swapped = true;
  158. for (int i = 0; i < arr.length - 1; i++) {
  159. // 如果没有发生过交换,说明剩余部分已经有序,排序完成
  160. if (!swapped) break;
  161. // 设置 swapped 为 false,如果发生交换,则将其置为 true
  162. swapped = false;
  163. for (int j = 0; j < arr.length - 1 - i; j++) {
  164. if (arr[j] > arr[j + 1]) {
  165. // 如果左边的数大于右边的数,则交换,保证右边的数字最大
  166. int temp = arr[j];
  167. arr[j] = arr[j + 1];
  168. arr[j + 1] = temp;
  169. // 表示发生了交换
  170. swapped = true;
  171. }
  172. }
  173. }
  174. System.out.println("冒泡排序1:"+Arrays.toString(arr));
  175. }
  176. private static void ArrSortM2(int[] arr) {
  177. for (int i = 0; i < arr.length - 1; i++) {
  178. for (int j = 0; j < arr.length - 1 - i; j++) {
  179. // 不添加参数的写法
  180. // 升序:如果左边的数大于右边的数,则交换,保证右边的数字最大
  181. // 降序:如果左边的数小于右边的数,则交换,保证右边的数字最小
  182. if (arr[j] > arr[j + 1]) {
  183. arr[j + 1] = arr[j + 1] + arr[j];
  184. arr[j] = arr[j + 1] - arr[j];
  185. arr[j + 1] = arr[j + 1] - arr[j];
  186. }
  187. }
  188. }
  189. System.out.println("冒泡排序2:"+Arrays.toString(arr));
  190. }
  191. private static void ArrSortM3(int[] arr) {
  192. boolean swapped = true;
  193. // 最后一个没有经过排序的元素的下标
  194. int indexOfLastUnsortedElement = arr.length - 1;
  195. // 上次发生交换的位置
  196. int swappedIndex = -1;
  197. while (swapped) {
  198. swapped = false;
  199. for (int i = 0; i < indexOfLastUnsortedElement; i++) {
  200. if (arr[i] > arr[i + 1]) {
  201. // 如果左边的数大于右边的数,则交换,保证右边的数字最大
  202. int temp = arr[i];
  203. arr[i] = arr[i + 1];
  204. arr[i + 1] = temp;
  205. // 表示发生了交换
  206. swapped = true;
  207. // 更新交换的位置
  208. swappedIndex = i;
  209. }
  210. }
  211. // 最后一个没有经过排序的元素的下标就是最后一次发生交换的位置
  212. indexOfLastUnsortedElement = swappedIndex;
  213. }
  214. System.out.println("冒泡排序3:"+Arrays.toString(arr));
  215. }
  216. private static void ArrSort1(int[] arr) {
  217. Arrays.sort(arr);
  218. System.out.println("快速排序-默认升序:"+Arrays.toString(arr));
  219. }
  220. private static void ArrSort2(int[] arr) {
  221. //数组类型不能是基本数据类型
  222. Integer[] arrayInteger = Arrays.stream(arr).boxed().toArray(Integer[]::new);
  223. Arrays.sort(arrayInteger, Collections.reverseOrder());
  224. System.out.println("快速排序-降序:"+Arrays.toString(arrayInteger));
  225. }
  226. private static void ArrSort3(int[] arr) {
  227. Arrays.sort(arr,1, 3);
  228. System.out.println("快速排序-区间排序:"+Arrays.toString(arr));
  229. }
  230. private static void ArrSort4(int[] arr) {
  231. Integer[] arrayInteger = Arrays.stream(arr).boxed().toArray(Integer[]::new);
  232. Arrays.sort(arrayInteger, new Comparator<Integer>() {
  233. @Override
  234. public int compare(Integer o1, Integer o2) {
  235. return o2 - o1;
  236. }
  237. });
  238. System.out.println("快速排序-重载排序:"+Arrays.toString(arrayInteger));
  239. }
  240. private static void ArrSort5(int[] arr) {
  241. Integer[] arrayInteger = Arrays.stream(arr).boxed().toArray(Integer[]::new);
  242. //lambda表达式
  243. Arrays.sort(arrayInteger, (o1, o2) -> o2 - o1);
  244. System.out.println("快速排序-重载排序:"+Arrays.toString(arrayInteger));
  245. }
  246. private static void extracted(int[] arr) {
  247. System.out.println("原来的数组:"+ arr);
  248. //输出方式-for
  249. System.out.println("输出方式-for:");
  250. for (int i = 0; i < arr.length; i++) {
  251. System.out.println("for循环输出:"+ arr[i]);
  252. }
  253. System.out.println("======================");
  254. //输出方式-for each
  255. System.out.println("输出方式-for each:");
  256. for (int i: arr){
  257. System.out.println("for each循环输出:"+i);
  258. }
  259. System.out.println("======================");
  260. //输出方式1-toString
  261. System.out.println("输出方式-toString:");
  262. System.out.println("toString:"+Arrays.toString(arr));
  263. System.out.println("======================");
  264. }
  265. }
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号