JAVA进阶4

Posted 贫血的吸血鬼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA进阶4相关的知识,希望对你有一定的参考价值。

 

间歇性混吃等死,持续性踌躇满志系列-------------第4天

1、静态内部类求极值

 1 class MaxMin{
 2     public static class Result{
 3         //表示最大值、最小值
 4         private double Max;
 5         private double Min;
 6         //使用构造方法进行初始化
 7         public Result(double max,double min){
 8             this.Max = max;
 9             this.Min = min;
10         }
11         //获得最大值
12         public double getMax(){
13             return Max;
14         }
15         //获得最小值
16         public double getMin(){
17             return Min;
18         }
19     }
20     public static Result getResult(double[] array){
21         double max = Double.MIN_VALUE;
22         double min = Double.MAX_VALUE;
23         //遍历数组获得最大值和最小值
24         for(double i :array){
25             if(i>max){
26                 max =i;
27             }
28             if(i<min){
29                 min = i;
30             }
31         }
32         return new Result(max,min);
33     }
34 }
35 public class Test{
36     public static void main(String[] args){
37         double[] array = new double[4];
38         for(int i =0;i<array.length;i++){
39             //初始化数组
40             array[i] = 100*Math.random();
41         }
42         System.out.println("源数组:");
43         for(int i = 0;i<array.length;i++){
44             //显示数组中的各个元素
45             System.out.println(array[i]);
46         }
47         //显示最大值、最小值
48         System.out.println("最大值:"+MaxMin.getResult(array).getMax());
49         System.out.println("最小值:"+MaxMin.getResult(array).getMin());
50     }
51 }
View Code

运行结果图

2、利用反射重写toString()方法

 1 import java.lang.reflect.Constructor;
 2 import java.lang.reflect.Field;
 3 import java.lang.reflect.Method;
 4 import java.lang.reflect.Modifier;
 5 
 6 public class StringUtils{
 7     @SuppressWarnings("unchecked")
 8     public String toString(Object object){
 9         //获得代表该类的class对象
10         Class clazz = object.getClass();
11         //利用StringBuilder来保存字符串
12         StringBuilder sb = new StringBuilder();
13         //获得类所在的包
14         Package packageName = clazz.getPackage();
15         //输出类所在的包
16         sb.append("包名:"+packageName.getName()+"\\t");
17         //获得类的简单名称
18         String className = clazz.getSimpleName();
19         //输出类的简单名称
20         sb.append("类名:"+className+"\\n");
21         sb.append("公共构造方法:\\n");
22         //获得所有代表构造方法的Constructor数组
23         Constructor[] constructors = clazz.getDeclaredConstructors();
24         for(Constructor constructor:constructors){
25             //获得修饰符
26             String modifier = Modifier.toString(constructor.getModifiers());
27             //查看修饰符是否含有public
28             if(modifier.contains("public")){
29                 sb.append(constructor.toGenericString()+"\\n");
30             }
31         }
32         sb.append("公共域:\\n");
33         //获得所有域的Field[]数组
34         Field[] fields = clazz.getDeclaredFields();
35         for(Field field:fields){
36             String modifier = Modifier.toString(field.getModifiers());
37             //查看修饰符是否含有public
38             if(modifier.contains("public")){
39                 sb.append(field.toGenericString());
40             }
41         }
42         sb.append("公共方法:\\n");
43         //获得代表所有方法的Method[]数组
44         Method[] methods = clazz.getDeclaredMethods();
45         for(Method method:methods){
46             String modifier = Modifier.toString(method.getModifiers());
47             //查看修饰符是否含有public
48             if(modifier.contains("public")){
49                 sb.append(method.toGenericString()+"\\n");
50             }
51         }
52         return sb.toString();
53     }
54     public static void main(String[] args){
55         System.out.println(new StringUtils().toString(new java.util.Date()));
56     }
57 }
利用反射重写toString()方法

运行结果图

3、创建集合对象

创建集合对象

运行结果图

4、Set接口的常用方法

set集合由set接口和set接口的实现类组成。由于set集合中不允许存在重复值,因此可以使用set集合中的addAll()方法,将collection集合添加到Set集合中并去重

 1 import javax.print.DocFlavor;
 2 import java.util.*;
 3 
 4 public class CollectionDemo{
 5     public static void main(String[] args){
 6         //创建List集合对象
 7         List<String> list = new ArrayList<String>();
 8         //向集合中添加元素
 9         list.add("apple");
10         list.add("pear");
11         list.add("banada");
12         list.add("apple");
13         //创建list集合对象
14         Set<String> set = new HashSet<String>();
15         //将list集合添加到set集合中
16         set.addAll(list);
17         //创建set集合迭代器
18         Iterator<String> it = set.iterator();
19         System.out.println("集合中的元素是:");
20         while (it.hasNext()){
21             System.out.println(it.next()+"\\t");
22         }
23     }
24 }
View Code

运行结果图

5、求出1-100之间的偶数和

1 public class Demo01{
2     public static void main(String[] args){
3         int sum = 0;
4         for(int i=0;i<=100;i+=2){
5             sum = sum+i;
6         }
7         System.out.println(sum);
8     }
9 }
View Code

运行结果图

 

以上是关于JAVA进阶4的主要内容,如果未能解决你的问题,请参考以下文章

Java进阶之光!2021必看-Java高级面试题总结

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

我的OpenGL学习进阶之旅NDK开发中find_library查找的系统动态库在哪里?

我的OpenGL学习进阶之旅NDK开发中find_library查找的系统动态库在哪里?

java学习---面向对象进阶

Atom编辑器入门到精通 Atom使用进阶