Test1.java

  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      * 功能:输出学生年龄的最大值 定义一个无参的方法,返回值为年龄的最大值 参考步骤: 1、定义一个整形数组 ages ,保存学生年龄,数组元素依次为 18
167      * ,23 ,21 ,19 ,25 ,29 ,17 2、定义一个整形变量 max ,保存学生最大年龄,初始时假定数组中的第一个元素为最大值 3、使用 for
168      * 循环遍历数组中的元素,并与假定的最大值比较,如果比假定的最大值要大,则替换当前的最大值 4、使用 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         // 3、逆序;
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         // 1、升序:
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         // 2、降序:
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         // 1、升序:
257         Arrays.sort(a);// a: 1 2 4 5 6 7 8
258         System.out.println("数组升序" + Arrays.toString(a));
259         // 2、降序:
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 }

 

posted @ 2018-08-14 15:10  xinyu_xinqing  阅读(387)  评论(0编辑  收藏  举报