JDK5News

来源:互联网 发布:oracle数据库试题 编辑:程序博客网 时间:2024/06/06 13:16
import java.util.ArrayList;import java.util.List;/* * JDK5的新特性:自动拆装箱,泛型,增强for,静态导入,可变参数,枚举 *  * 增强for:是for循环的一种。 *  * 格式: * for(元素数据类型 变量 : 数组或者Collection集合) { *使用变量即可,该变量就是元素 *   } *    * 好处:简化了数组和集合的遍历。 *  * 弊端: 增强for的目标不能为null。 * 如何解决呢?对增强for的目标先进行不为null的判断,然后在使用。 */public class ForDemo {public static void main(String[] args) {// 定义一个int数组int[] arr = { 1, 2, 3, 4, 5 };for (int x = 0; x < arr.length; x++) {System.out.println(arr[x]);}System.out.println("---------------");// 增强forfor (int x : arr) {System.out.println(x);}System.out.println("---------------");// 定义一个字符串数组String[] strArray = { "林青霞", "风清扬", "东方不败", "刘意" };// 增强forfor (String s : strArray) {System.out.println(s);}System.out.println("---------------");// 定义一个集合ArrayList<String> array = new ArrayList<String>();array.add("hello");array.add("world");array.add("java");// 增强forfor (String s : array) {System.out.println(s);}System.out.println("---------------");List<String> list = null;// NullPointerException// 这个s是我们从list里面获取出来的,在获取前,它肯定还好做一个判断// 说白了,这就是迭代器的功能if (list != null) {for (String s : list) {System.out.println(s);}}// 增强for其实是用来替代迭代器的//ConcurrentModificationException// for (String s : array) {// if ("world".equals(s)) {// array.add("javaee");// }// }// System.out.println("array:" + array);}}


public class Student {private String name;private int age;public Student() {super();}public Student(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
import java.util.ArrayList;import java.util.Iterator;/* * 需求:ArrayList存储自定义对象并遍历。要求加入泛型,并用增强for遍历。 * A:迭代器 * B:普通for * C:增强for *  * LinkedList,Vector,Colleciton,List等存储我还讲吗?不讲解了,但是要求你们练习。 *  * 增强for是用来替迭代器。 */public class ArrayListDemo {public static void main(String[] args) {// 创建集合对象ArrayList<Student> array = new ArrayList<Student>();// 创建学生对象Student s1 = new Student("林青霞", 27);Student s2 = new Student("貂蝉", 22);Student s3 = new Student("杨玉环", 24);Student s4 = new Student("西施", 21);Student s5 = new Student("王昭君", 23);// 把学生对象添加到集合中array.add(s1);array.add(s2);array.add(s3);array.add(s4);array.add(s5);// 迭代器Iterator<Student> it = array.iterator();while (it.hasNext()) {Student s = it.next();System.out.println(s.getName() + "---" + s.getAge());}System.out.println("---------------");// 普通forfor (int x = 0; x < array.size(); x++) {Student s = array.get(x);System.out.println(s.getName() + "---" + s.getAge());}System.out.println("---------------");// 增强forfor (Student s : array) {System.out.println(s.getName() + "---" + s.getAge());}}}

/* * 静态导入: * 格式:import static 包名….类名.方法名; * 可以直接导入到方法的级别 *  * 静态导入的注意事项: * A:方法必须是静态的 * B:如果有多个同名的静态方法,容易不知道使用谁?这个时候要使用,必须加前缀。由此可见,意义不大,所以一般不用,但是要能看懂。 */import static java.lang.Math.abs;import static java.lang.Math.pow;import static java.lang.Math.max;//错误//import static java.util.ArrayList.add;public class StaticImportDemo {public static void main(String[] args) {// System.out.println(java.lang.Math.abs(-100));// System.out.println(java.lang.Math.pow(2, 3));// System.out.println(java.lang.Math.max(20, 30));// 太复杂,我们就引入到import// System.out.println(Math.abs(-100));// System.out.println(Math.pow(2, 3));// System.out.println(Math.max(20, 30));// 太复杂,有更简单//System.out.println(abs(-100));System.out.println(java.lang.Math.abs(-100));System.out.println(pow(2, 3));System.out.println(max(20, 30));}public static void abs(String s){System.out.println(s);}}

/* * 可变参数:定义方法的时候不知道该定义多少个参数 * 格式: * 修饰符 返回值类型 方法名(数据类型…  变量名){ *  * } *  * 注意: * 这里的变量其实是一个数组 * 如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个 */public class ArgsDemo {public static void main(String[] args) {// 2个数据求和int a = 10;int b = 20;int result = sum(a, b);System.out.println("result:" + result);// 3个数据的求和int c = 30;result = sum(a, b, c);System.out.println("result:" + result);// 4个数据的求和int d = 30;result = sum(a, b, c, d);System.out.println("result:" + result);// 需求:我要写一个求和的功能,到底是几个数据求和呢,我不太清楚,但是我知道在调用的时候我肯定就知道了// 为了解决这个问题,Java就提供了一个东西:可变参数result = sum(a, b, c, d, 40);System.out.println("result:" + result);result = sum(a, b, c, d, 40, 50);System.out.println("result:" + result);}public static int sum(int... a) {// System.out.println(a);//return 0;int s = 0;for(int x : a){s +=x;}return s;}// public static int sum(int a, int b, int c, int d) {// return a + b + c + d;// }//// public static int sum(int a, int b, int c) {// return a + b + c;// }//// public static int sum(int a, int b) {// return a + b;// }}

import java.util.Arrays;import java.util.List;/* * public static <T> List<T> asList(T... a):把数组转成集合 *  * 注意事项: * 虽然可以把数组转成集合,但是集合的长度不能改变。 */public class ArraysDemo {public static void main(String[] args) {// 定义一个数组// String[] strArray = { "hello", "world", "java" };// List<String> list = Arrays.asList(strArray);List<String> list = Arrays.asList("hello", "world", "java");// UnsupportedOperationException// list.add("javaee");// UnsupportedOperationException// list.remove(1);list.set(1, "javaee");for (String s : list) {System.out.println(s);}}}



0 0
原创粉丝点击