增强for循环

1.for循环能做得事情,增强for循环大部分都能做(如果要想获得下标的时候就必须使用简单for循环了)


2.增强for有时候能够方便的处理集合遍历的问题,但是集合的标准遍历是使用迭代器


3.在集合框架中体现出了它的强大之处


Map接口遍历

Map接口的遍历:
1.第一种方法 使用map.values()方法,先把value的值都放在一个Collection集合中。
2.第二种方法 使用map.entrySet()方法(推荐使用)
3.第三种方法 使用map.keySet()方法
其实对于Map接口进行遍历操作是很少的,通常对其都是进行查询操作。


遍历Map接口中的value的三种方法代码操作

System.out.println("=========第一种方法========");
   // 如何迭代map内容
   // 第一种方法 使用map.values()方法,先把value的值都放在一个Collection集合中。
   Collection<Person> collections = map.values();  for (Person person : collections) {
   System.out.println(person);
   }  // 第二种方法 使用map.entrySet()方法(最为推荐的方法)
  System.out.println("=========第二种方法========");
   // Set<Entry<String, Person>> set=map.entrySet();  for (Entry<String, Person> entry : map.entrySet()) {
   System.out.println(entry.getValue());
   }  System.out.println("=========第三种方法========");
   // 第三种方法 使用map.keySet()方法
          //Set<String> keySet=map.keySet();
   
   for (String key : map.keySet()) {
    System.out.println(key);
    System.out.println(map.get(key));
   }

可变参数

可变参数(比较简单但是比较实用的小技巧)

可变参数的出现方便了程序的开发

Object...args

String...args

格式为:(数据类型。。。参数名(可以随意取得))


增强for循环的有一个缺点:失去了下标索引的信息。

自动装箱和自动拆箱(是针对8个原生数据类型和对应的封装类型)

自动装箱:int >>Integer

自动拆箱:Integer>>int

<T> 泛型中的T不要使用原生数据类型来定义

可变参数,还是挺有用的一个小功能  type...args,可变参数一定要定义才参数列表中最后一个位置。其实侧面也反应了一个问题:一个方法中最多只能有一个可变参数。

其实可变参数本质是一个数组

例如:Object...args              实际参数可以这么写:new Object[]{x,y,z}