1 静态导入
在导包的过程中我们可以直接导入静态部分,这样某个类的静态成员就可以直接使用了。在源码中经常会出现静态导入。
静态导入格式:
import static XXX.YYY; 导入后YYY可直接使用。
2 可变参数
在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化成如下格式:
修饰符 返回值类型 方法名(参数类型... 形参名){ }
其实这个书写完全等价与
修饰符 返回值类型 方法名(参数类型[] 形参名){ }
只是后面这种定义,在调用时必须传递数组,而前者可以直接传递数据即可。
public class Demo02 { public static void main(String[] args) { System.out.println(add(1,2)); System.out.println(add(1,2,3,4)); } //写一个求和的方法,参数都是整形 //(可变参数) //注意:只能有一个可变参数,放在最后面 public static int add(int...a){ int sum=0; for(int i:a){ sum+=i; } return sum; } }
3 Collections集合工具类
public class Demo03 { public static void main(String[] args) { List<Integer>list=new ArrayList<Integer>(); list.add(55); list.add(1); list.add(22); list.add(23); list.add(9); //对集合进行排序 Collections.sort(list); for(int i:list){ System.out.println(i); } //对集合元素随机打乱 Collections.shuffle(list); for(int i:list){ System.out.println(i); } } }
4 集合嵌套练习
public class Demo06 { public static void main(String[] args) { HashMap<String,HashMap<Person,String>>map=new HashMap<String,HashMap<Person,String>>(); HashMap<Person,String>m1=new HashMap<Person,String>(); HashMap<Person,String>m2=new HashMap<Person,String>(); m1.put(new Person("张三",22), "java1203班"); m1.put(new Person("李四",22), "java1203班"); m2.put(new Person("王五",22), "java1204班"); m2.put(new Person("李三",22), "java1204班"); map.put("清华", m1); map.put("北大", m2); //keySet+for //获取所有学校名称 Set<String>schools=map.keySet(); for(String sc:schools){ HashMap<Person,String> classes=map.get(sc); Set<Person>ps=classes.keySet(); for(Person p:ps){ String classname=classes.get(p); System.out.println("学校名称为:"+sc+",班级名称为:"+classname+",学生姓名为"+p.getName()+ "学生年龄为:"+p.getAge()); } } } }