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 }
运行结果图
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 }
运行结果图
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 }
运行结果图
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 }
运行结果图