增强for循环:
增强for循环:
替换Iterator()
//内部实际仍然是Iterator。
for(String s : arraylist)
{
System.out.println(s);
}
和迭代器的区别:
迭代器除了可以遍历,还可以进行remove()
集合中的元素的操作,如果是Listiterator
,还可以进行增删改查的操作。
其次对于传统的数组也可以进行遍历。
传统for循环和高级for循环有什么区别?
高级for循环有一个局限性。必须有被遍历的目标。
比如打印hello world-100遍
建议:在遍历数组的时候仍旧用传统for。
//先获取到key
Set<Integer> set = hm.keySet();
//循环遍历
for(Integer num : set)//(Type param : List/Map/Set)
{
System.out.println(num+":"+hm.get(num));
}
//通过entrySet方式获取。同时明白:set里存入什么类型,则for循环里的类型就是什么类型。
Set<Map.Entry<Integer,String>> entryset = hm.entrySet();
for(Map.Entry<Integer,String> limap : entryset)
{
System.out.println(limap.getKey()+":"+limap.getValue());
}
可变参数:
当传入的参数类型相同时,没必要往里传入多个 int a, int b, int c…
一种做法是:
往里传入一个int数组: method(int[] arr)
可变参数
其实就是上一种数组的简写形式,
不用每一次都手动的建立数组对象。
只要将要操作得对象作为参数传递即可,
隐式将这些参数封装成了数组。
局限性:
使用可变参数时,一定要定义在参数列表的最后面。前面可以定义其他类型的参数。
class ParamDemo
{
public static void main(String[] args)
{
System.out.println("Hello World!");
show(1,3,2,4,6,3);//相当于int 1,int 3,
show();//无参也可以
}
public static void show(int... arr)
{
//打印参数的个数
System.out.println(arr.length);
}
}
静态导入
Static Import
用法: import … 导入的都是类。
import static … 导入的是静态成员。
public static void main(String[] args)
{
//正常使用是System.out.println("XXX");但是通过上述引入了该类(System),则里面的所有的静态方法都可以直接使用。
out.println("Hello World!");
int[] arr={1,5,2,4,3};
sort(arr);//以前的写法:Arrays.sort();
out.println(arr);//以前的写法:System.out.println(arr);
}
**注:**对于toString()
由于Object类里也包含该方法,所以!!!跟引入包一样,需要带上自己的包名,如下:packetA.demo()
;packetB.demo()
可能其他的包里也存在sort方法,但是没有引入的话,就不会出现冲突情况。