静态导入
静态导入格式:
import static java.util.Map.Entry
import static XXX.YYY; 导入后YYY可直接使用。
可变参数
格式:
修饰符 返回值类型 方法名(参数类型... 形参名){ }
修饰符 返回值类型 方法名(参数类型[] 形参名){ }
public class ParamDemo {
public static void main(String[] args) {
int[] arr = {21,89,32};
int sum = add(arr);
System.out.println(sum);
sum = add(21,89,32);//可变参数调用形式
System.out.println(sum);
}
//JDK1.5之后写法
public static int add(int...arr){
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
//原始写法
/*
public static int add(int[] arr) {
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
*/
}
注意:如果在方法书写时,这个方法拥有多参数,参数中包含可变参数,可变参数一定要写在参数列表的末尾位置。
public static int add(int...a)//形参中只能有一个可变参
public static int add(double b,int...a)//可以在前面插入参数
Collections集合工具类
Collections是集合工具类,用来对集合进行操作。
public static <T> void sort(List<T> list) // 集合元素排序
//排序前元素list集合元素 [33,11,77,55]
Collections.sort( list );
//排序后元素list集合元素 [11,33,55,77]
public static void shuffle(List<?> list) // 集合元素存储位置打乱
//list集合元素 [11,33,55,77]
Collections.shuffle( list );
//使用shuffle方法后,集合中的元素为[77,33,11,55],每次执行该方法,集合中存储的元素位置都会随机打乱
集合嵌套
l Map集合嵌套
HashMap<String, HashMap<String,String>>
HashMap<String, HashMap<Person,String>>
public class Demo03 {
public static void main(String[] args) {
HashMap<String, HashMap<Person,String >> oracle=new HashMap<String, HashMap<Person,String >>();
HashMap<Person, String> java0512=new HashMap<Person,String>();
java0512.put(new Person("小红",18), "优秀");
java0512.put(new Person("小白",20), "不及格");
HashMap<Person, String> java0715=new HashMap<Person,String>();
java0715.put(new Person("小绿",25), "良好");
java0715.put(new Person("小黑",23), "及格");
oracle.put("java0512", java0512);
oracle.put("java0715", java0715);
//遍历
//1.keySet+增强for
//获取所有Key所在的set集合
Set<String> bigKeys=oracle.keySet();
//遍历获取每一个key
for(String bigKey:bigKeys){
String bkey=bigKey;//获取大Map中的key值
//获取大Map中的Velue值
HashMap<Person,String > bigValue=oracle.get(bkey);
//遍历小Map
//获取小key所在的set集合
Set<Person> smallKeys=bigValue.keySet();
//遍历取到每一个key
for(Person smallkey:smallKeys){
Person skey=smallkey;//获取小Map中获取key值
String sval=bigValue.get(skey);//获取小map中的value值
System.out.println(bkey+"..."+skey+"..."+sval);
}
}
//2.keySet+Iterator迭代
Set<String> b=oracle.keySet();//获取所有Key所在的set集合
Iterator<String> bb=b.iterator();//获取迭代器对象
while(bb.hasNext()){
//遍历大Map中的key值
String bbb=bb.next();
//遍历大Map中的value值
HashMap<Person,String > bv=oracle.get(bbb);
//获取所有key所在的set集合
Set<Person> xx=bv.keySet();
//获取迭代器对象
Iterator<Person> x1=xx.iterator();
while(x1.hasNext()){
Person i=x1.next();//小map的key值
System.out.println(bbb+",,,"+i+",,,"+bv.get(i));//bv.get(i)小map的key值
}
}
//3.entrySet+增强for
Set<Map.Entry<String,HashMap<Person,String > >> arr=oracle.entrySet();//获取Map中所有key和value的对应关系
for(Map.Entry<String,HashMap<Person,String > > i:arr){//遍历set集合
String j=i.getKey();//获取大Map的key值
HashMap<Person,String > k=i.getValue();//获取大Map的value值
Set<Map.Entry<Person, String>> k1=k.entrySet();//获取小Map中的所有key和value的对应关系(一对)
for(Map.Entry<Person, String> aa:k1){//遍历小map集合
Person a1=aa.getKey();//获取小map集合的key值
String a2=aa.getValue();//获取小map集合的value值
System.out.println(j+"ooo"+a1+"ooo"+a2);
}
}
//4.entrySet+Iterator迭代
Set<Map.Entry<String,HashMap<Person,String >>> brr=oracle.entrySet();//获取Map中所有key和value的对应关系(一对)
Iterator<Map.Entry<String,HashMap<Person,String >>> die=brr.iterator();//获取迭代器对象
while(die.hasNext()){//遍历大Map
Map.Entry<String,HashMap<Person,String >> first=die.next();//大Map的一对值
String i=first.getKey();//大Map的Key值
HashMap<Person,String > i1=first.getValue();//大Map的Value值(小Map的一对值)
Set<Map.Entry<Person,String>> i2=i1.entrySet();//获取小Map中的所有key和value的对应关系(一对)
Iterator<Map.Entry<Person,String>> i3=i2.iterator();//获取迭代器对象
while(i3.hasNext()){//遍历小Map
Map.Entry<Person,String> i4=i3.next();//小Map的一对值
Person i5=i4.getKey();//小Map的Key值
String i6=i4.getValue();//小Map的Value值
System.out.println(i+"..."+i5+"..."+i6);
}
}
}
}