Java-Arrays数组操作

男娘i 2021-12-09 06:01 499阅读 0赞
  1. package Hello;
  2. import java.util.Arrays;
  3. import java.util.Collections;
  4. import java.util.Comparator;
  5. public class Array {
  6. public static void main(String[] args) {
  7. // OneArr();
  8. // FindArrMaxAndMin();
  9. // FindByBinary();
  10. // SortArr();
  11. ArraysApi();
  12. }
  13. /**
  14. * 一维数组
  15. */
  16. public static void OneArr() {
  17. // 方法1
  18. int[] intArrs = new int[4];
  19. intArrs[0] = 1;
  20. // length取得是声明的长度
  21. System.out.println(intArrs.length);
  22. // 方法二
  23. int[] intArrs2 = new int[] { 1, 2, 3, 4 };
  24. for (int i = 0; i < intArrs2.length; i++) {
  25. System.out.println(intArrs[i]);
  26. }
  27. // 方法三
  28. int[] intArrs3 = { 10, 11, 12 };
  29. for (int i = 0; i < intArrs3.length; i++) {
  30. System.out.println(intArrs3[i]);
  31. }
  32. }
  33. /**
  34. * 一维数组求最大值和最小值
  35. */
  36. public static void FindArrMaxAndMin() {
  37. int[] intArrs = { 10, 2, 1, 30, 19, 29 };
  38. // Max
  39. int num = intArrs[0];
  40. for (int i = 0; i < intArrs.length; i++) {
  41. int indexNum = intArrs[i];
  42. if (indexNum > num) {
  43. num = indexNum;
  44. }
  45. }
  46. System.out.println("最大值:" + num + "");
  47. // min
  48. for (int i = 0; i < intArrs.length; i++) {
  49. int indexNum = intArrs[i];
  50. if (indexNum < num) {
  51. num = indexNum;
  52. }
  53. }
  54. System.out.println("最小值:" + num + "");
  55. }
  56. /**
  57. * 利用二分法查找有序数组
  58. */
  59. public static void FindByBinary() {
  60. int[] numArrs = { 1, 3, 4, 6, 8, 11 };
  61. int findNum = 3;
  62. int findIndex = -1;
  63. int startIndex = 0;
  64. int endIndex = numArrs.length - 1;
  65. while (startIndex <= endIndex) {
  66. System.out.println("循环一次*******");
  67. findIndex = (startIndex + endIndex) / 2;
  68. if (findNum == numArrs[findIndex]) {
  69. break;
  70. } else if (findNum > numArrs[findIndex]) {
  71. startIndex = findIndex + 1;
  72. } else {
  73. endIndex = findIndex - 1;
  74. }
  75. }
  76. System.out.println("找到的数是:" + numArrs[findIndex]);
  77. }
  78. /**
  79. * 三种排序算法
  80. */
  81. public static void SortArr() {
  82. int[] arr = { 1, 3, 10, 2, 5, 12 };
  83. // 1.冒泡排序 原理:比较相邻的元素大小,将最大的数往下排
  84. // for (int i = 0; i < arr.length - 1; i++) {
  85. // for (int j = 0; j < arr.length - 1 - i; j++) {
  86. // if (arr[j] > arr[j + 1]) {
  87. // int temp = arr[j];
  88. // arr[j] = arr[j + 1];
  89. // arr[j + 1] = temp;
  90. // }
  91. // }
  92. // }
  93. // 2.选择排序 原理:每一轮比较出最小的数 ,将最小的数往上排
  94. // 1 和 3 10 2 5 12 比较
  95. // 2 和 10 3 5 12比较
  96. // 3 和 10 5 12比较
  97. // 5 和 10 12 比较
  98. // 10和 12比较
  99. int minIndex = 0;
  100. for (int i = 0; i < arr.length - 1; i++) {
  101. minIndex = i;
  102. for (int j = i + 1; j < arr.length; j++) {
  103. if (arr[j] < arr[minIndex]) {
  104. // 保存最小值的序号
  105. minIndex = j;
  106. }
  107. }
  108. // 位置的数值交换
  109. if (minIndex != i) {
  110. int temp = arr[i];
  111. arr[i] = arr[minIndex];
  112. arr[minIndex] = temp;
  113. }
  114. }
  115. // 3.插入排序 原理:
  116. for (int i = 0; i < arr.length; i++) {
  117. System.out.println(arr[i]);
  118. }
  119. }
  120. /**
  121. * API-Arrays类
  122. */
  123. public static void ArraysApi() {
  124. // 升序
  125. Integer[] arr = { 1, 3, 2, 5, 10, 8 };
  126. Arrays.sort(arr);
  127. for (int i = 0; i < arr.length; i++) {
  128. System.out.println("升序:" + arr[i]);
  129. }
  130. System.out.println("*********************************************************************");
  131. // 倒叙
  132. Arrays.sort(arr, Collections.reverseOrder());
  133. for (int i = 0; i < arr.length; i++) {
  134. System.out.println("升序:" + arr[i]);
  135. }
  136. System.out.println("*********************************************************************");
  137. // 复制
  138. Integer[] arrCopy = Arrays.copyOf(arr, arr.length);
  139. for (int i = 0; i < arrCopy.length; i++) {
  140. System.out.println("复制:" + arrCopy[i]);
  141. }
  142. System.out.println("*********************************************************************");
  143. // 填充
  144. Arrays.fill(arr, 0, 1, 100);
  145. for (int i = 0; i < arr.length; i++) {
  146. System.out.println("填充:" + arr[i]);
  147. }
  148. System.out.println("*********************************************************************");
  149. // 比较
  150. Integer[] comArr = { 10, 3, 3 };
  151. System.out.println("比较结果:" + Arrays.equals(arr, comArr));
  152. System.out.println("*********************************************************************");
  153. // 转String
  154. String arrString = Arrays.toString(arr).replace("[", "").replace("]", "");
  155. System.out.println(arrString);
  156. String[] intSplit = arrString.split(",");
  157. for (int i = 0; i < intSplit.length; i++) {
  158. System.out.println("intSplit:" + intSplit[i]);
  159. }
  160. System.out.println("*********************************************************************");
  161. }
  162. }

发表评论

表情:
评论列表 (有 0 条评论,499人围观)

还没有评论,来说两句吧...

相关阅读