1 package com; 2 3 import java.util.ArrayList; 4 import java.util.Arrays; 5 import java.util.Collections; 6 import java.util.List; 7 import java.util.stream.Collectors; 8 9 public class Test1 { 10 11 public static void main(String[] args) { 12 13 // NO.1 6-1 什麼是數組 14 // 定義一個數組,保存五名學生的成績 15 int[] scores = { 78, 93, 97, 84, 63 }; 16 17 // 輸出數組中的第二個成績 18 System.out.println("數組中的第2個成績爲:" + scores[1]); 19 20 // NO.2 6-3 如何使用java中的數組 21 // 定義一個長度爲5的字符串數組,保存考試科目信息 22 String[] subjects = new String[5]; 23 24 // 分別爲數組中的元素賦值 25 subjects[0] = "Oracle"; 26 subjects[1] = "PHP"; 27 subjects[2] = "Linux"; 28 subjects[3] = "Java"; 29 subjects[4] = "HTML"; 30 31 System.out.println("數組中第4個科目爲:" + subjects[3]); 32 33 // NO.3 6-5 使用循環操做java中的數組 34 // 定義一個長度爲 3 的字符串數組,並賦值初始值 35 String[] hobbys = { "sports", "game", "movie" }; 36 System.out.println("循環輸出數組中元素的值:"); 37 38 // 使用循環遍歷數組中的元素 39 40 for (int i = 0; i < hobbys.length; i++) { 41 System.out.println(hobbys[i]); 42 } 43 44 // NO.4 6-6 編程練習 45 // 定義一個整型數組,並賦初值 46 int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 }; 47 48 int max = nums[0]; // 假定最大值爲數組中的第一個元素 49 int min = nums[0]; // 假定最小值爲數組中的第一個元素 50 double sum = 0;// 累加值 51 double avg = 0;// 平均值 52 53 for (int i = 0; i < nums.length; i++) { // 循環遍歷數組中的元素 54 // 若是當前值大於max,則替換max的值 55 56 if (nums[i] > max) { 57 58 max = nums[i]; 59 } 60 61 // 若是當前值小於min,則替換min的值 62 63 if (nums[i] < min) { 64 min = nums[i]; 65 } 66 67 // 累加求和 68 sum += nums[i]; 69 70 } 71 72 // 求平均值 73 avg = sum / nums.length; 74 75 System.out.println("數組中的最大值:" + max); 76 System.out.println("數組中的最小值:" + min); 77 System.out.println("數組中的平均值:" + avg); 78 79 // NO.5 7-1 如何定義java中的方法 80 // 在 main 方法中調用 print 方法 81 Test1 test1 = new Test1(); 82 test1.print(); 83 84 // NO.6 7-2 java中無參無返回值方法的使用 85 test1.showMyLove(); 86 87 // NO.7 7-3 java中無參帶返回值方法的使用 88 // 調用hello對象的calcAvg()方法,並將返回值保存在變量avg中 89 double avg1 = test1.calcAvg(); 90 91 System.out.println("平均成績爲:" + avg1); 92 93 // NO.8 7-4 編程練習 94 // 調用方法並將返回值保存在變量中 95 int maxScore = test1.getMaxAge(); 96 97 // 輸出最大年齡 98 System.out.println("最大年齡爲:" + maxScore); 99 100 // NO.9 7-5 java中帶參無返回值方法的使用 101 test1.calAvg(94, 81); 102 103 // NO.10 7-6 java中帶參帶返回值方法的使用 104 int[] scores1 = { 79, 52, 98, 81 }; 105 106 // 調用方法,傳入成績數組,並獲取成績的個數 107 int count = test1.sort(scores1); 108 109 System.out.println("共有" + count + "個成績信息!"); 110 111 // NO.11 7-8 java中方法的重載 112 test1.print(); 113 // 調用帶有一個字符串參數的方法 114 test1.print("jdjdj"); 115 116 // 調用帶有一個整型參數的方法 117 test1.print(4); 118 119 // NO.12 7-8 編程練習 120 // 調用方法並將返回值保存在變量中 121 int[] nums1 = test1.getArray(8); 122 123 // 將數組轉換爲字符串並輸出 124 System.out.println(Arrays.toString(nums1)); 125 126 // NO.13 8-1 編程練習 127 int[] scores2 = { 89, -23, 64, 91, 119, 52, 73 }; 128 int count1 = 0; 129 int[] Three = test1.numThree(scores2); 130 for (int i = scores2.length - 1; i >= 0 && count1 < 3; i--) { 131 if (Three[i] > 100 || Three[i] < 0) { 132 continue; 133 } else { 134 System.out.println(Three[i]); 135 count1++; 136 } 137 138 } 139 } 140 141 // 定義了一個方法名爲 print 的方法,實現輸出信息功能 142 public void print() { 143 System.out.println("Hello World"); 144 } 145 146 /* 147 * 定義無參無返回值的方法 148 */ 149 public void showMyLove() { 150 System.out.println("我愛慕課網!"); 151 } 152 153 // 定義一個返回值爲double類型的方法 154 public double calcAvg() { 155 156 double java = 92.5; 157 double php = 83.0; 158 double avg = (java + php) / 2; // 計算平均值 159 160 // 使用return返回值 161 return avg; 162 163 } 164 165 /* 166 * 功能:輸出學生年齡的最大值 定義一個無參的方法,返回值爲年齡的最大值 參考步驟: 一、定義一個整形數組 ages ,保存學生年齡,數組元素依次爲 18 167 * ,23 ,21 ,19 ,25 ,29 ,17 二、定義一個整形變量 max ,保存學生最大年齡,初始時假定數組中的第一個元素爲最大值 三、使用 for 168 * 循環遍歷數組中的元素,並與假定的最大值比較,若是比假定的最大值要大,則替換當前的最大值 四、使用 return 返回最大值 169 */ 170 public int getMaxAge() { 171 172 int[] ages = { 18, 23, 21, 19, 25, 29, 17 }; 173 int maxScore = ages[0]; 174 for (int i = 1; i < ages.length; i++) { 175 if (ages[i] > maxScore) { 176 maxScore = ages[i]; 177 } 178 179 } 180 return maxScore; 181 182 } 183 184 /* 185 * 功能:計算兩門課程考試成績的平均分並輸出平均分 定義一個包含兩個參數的方法,用來傳入兩門課程的成績 186 */ 187 public void calAvg(int a, int b) { 188 double c = (a + b) / 2; 189 System.out.println("pingjunfen3 " + c); 190 } 191 192 /* 193 * 功能:將考試成績排序並輸出,返回成績的個數 定義一個包含整型數組參數的方法,傳入成績數組 使用Arrays類對成績數組進行排序並輸出 194 * 方法執行後返回數組中元素的個數 195 */ 196 public int sort(int[] scores) { 197 Arrays.sort(scores); 198 System.out.println(Arrays.toString(scores)); 199 200 // 要轉換的list集合 201 List<String> testList = new ArrayList<String>() { 202 /** 203 * 204 */ 205 private static final long serialVersionUID = 1L; 206 207 { 208 add("aa"); 209 add("bb"); 210 add("cc"); 211 } 212 }; 213 214 // 使用toArray(T[] a)方法 215 String[] array2 = testList.toArray(new String[testList.size()]); 216 217 // 打印該數組 218 for (int i = 0; i < array2.length; i++) { 219 System.out.println(array2[i]); 220 } 221 System.out.println(Arrays.toString(array2)); 222 223 // list升序,降序,逆序 224 List<Integer> list = new ArrayList<Integer>() { 225 /** 226 * 227 */ 228 private static final long serialVersionUID = 1L; 229 230 // { 231 // add(1); 232 // add(2); 233 // } 234 }; 235 list.add(5); 236 list.add(7); 237 list.add(2); 238 list.add(6); 239 list.add(8); 240 list.add(1); 241 list.add(4); 242 243 System.out.println("正序" + Arrays.toString(list.toArray(new Integer[list.size()]))); 244 // 三、逆序; 245 Collections.reverse(list);// list:4 1 8 6 2 7 5 246 System.out.println("逆序" + Arrays.toString(list.toArray(new Integer[list.size()]))); 247 // 一、升序: 248 Collections.sort(list);// list: 1 2 4 5 6 7 8 249 System.out.println("升序" + Arrays.toString(list.toArray(new Integer[list.size()]))); 250 // 二、降序: 251 Collections.sort(list, Collections.reverseOrder());// list:8 7 6 5 4 2 1 252 System.out.println("降序" + Arrays.toString(list.toArray(new Integer[list.size()]))); 253 254 // 數組升序,降序 255 int[] a = { 5, 7, 2, 6, 8, 1, 4 }; 256 // 一、升序: 257 Arrays.sort(a);// a: 1 2 4 5 6 7 8 258 System.out.println("數組升序" + Arrays.toString(a)); 259 // 二、降序: 260 // List<int[]> list2=Arrays.asList(a); 261 262 // int[] src = {1,2,3,4,5,6,7,8,9,10}; 263 List<Integer> list2 = Arrays.stream(a).boxed().collect(Collectors.toList()); 264 265 Collections.sort(list2, Collections.reverseOrder());// a: 8 7 6 5 4 2 1 266 System.out.println("數組降序" + Arrays.toString(list2.toArray(new Integer[list2.size()]))); 267 // 返回數組中元素的個數 268 return scores.length; 269 270 } 271 272 public void print1() { 273 System.out.println("無參的print方法"); 274 } 275 276 public void print(String name) { 277 System.out.println("帶有一個字符串參數的print方法,參數值爲:" + name); 278 } 279 280 public void print(int age) { 281 System.out.println("帶有一個整型參數的print方法,參數值爲:" + age); 282 } 283 284 /* 285 * 功能:建立指定長度的int型數組,並生成100之內隨機數爲數組中的每一個元素賦值 定義一個帶參帶返回值的方法,經過參數傳入數組的長度,返回賦值後的數組 286 */ 287 public int[] getArray(int length) { 288 // 定義指定長度的整型數組 289 int[] nums = new int[length]; 290 291 // 循環遍歷數組賦值 292 for (int i = 0; i < length; i++) { 293 294 // 產生一個100之內的隨機數,並賦值給數組的每一個成員 295 nums[i] = (int) (Math.random() * 100); 296 297 } 298 return nums; // 返回賦值後的數組 299 } 300 301 // 定義方法完成成績排序並輸出前三名的功能 302 303 public int[] numThree(int[] scores) { 304 Arrays.sort(scores); 305 return scores; 306 307 } 308 }