增强for概述:
简化数组和Collection集合的遍历
格式:
for(元素数据类型 变量 : 数组或者Collection集合) {
使用变量即可,该变量就是元素
}
package org.westos.Demo;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
//测试类
public class ForDemo {
public static void main(String[] args) {//主方法
ArrayList<Student> al = new ArrayList<>();//创建一个ArrayList集合
Student s1 = new Student("小里", 20);//创建五个学生对象
Student s2 = new Student("小的", 12);
Student s3 = new Student("小任", 23);
Student s4 = new Student("小额", 24);
Student s5 = new Student("小体", 25);
al.add(s1);//将以上五个学生对象放入集合内
al.add(s2);
al.add(s3);
al.add(s4);
al.add(s5);
//用ArrayList中的size()和get()方法对集合进行遍历
for (int i = 0; i < al.size(); i++) {
Student student = al.get(i);
System.out.println(student.getName() + "------" + student.getAge());
}
//
// 用ArrayList中的迭代器进行遍历(List中特有的迭代器)
ListIterator<Student> li = al.listIterator();//获取一个迭代器
while (li.hasNext()) {
Student student1 = li.next();
System.out.println(student1.getName() + "----" + student1.getAge());
}
//
// Iterator<Student> iterator = al.iterator();//实现Collection中的迭代器
// while(iterator.hasNext()){
// Student student2 = iterator.next();
// System.out.println(student2.getName()+"----"+student2.getAge());
// }
//用增强for循环进行遍历
for (Student stu : al) {// 使用增强for循环相对于一般for循环和迭代器来说大大简化了代码量。
System.out.println(stu.getName() + "------" + stu.getAge());
}
}
}
package org.westos.Demo;
public class Student {
private String name;
private int age;
//无参构造
public Student() {
}
//有参构造
public Student(String name, int age) {
this.name = name;
this.age = age;
}
//setXXX和getXXX方法
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;
}
//重写toString方法
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
可变参数:
可变参数概述: 定义方法的时候不知道该定义多少个参数
格式: 修饰符 返回值类型 方法名(数据类型… 变量名){}
注意事项:
这里的变量其实是一个数组
如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个
package org.westos.demo2;
import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
public class MyTest {
public static void main(String[] args) {
int sum = addMthod(1, 2);
// System.out.println(sum);
int sum2 = addMthod(1, 2, 3);
int sum3 = addMthod(1, 2, 3,4);
//
System.out.println(sum);
System.out.println(sum2);
System.out.println(sum3);
List<String> strings = Arrays.asList("abc", "222", "hehe", "hehe");
}
//private static int addMthod(int a, int b) {
// return a + b;
//}
//
//private static int addMthod(int a, int b, int c) {
// return a + b + c;
//}
//
//private static int addMthod(int a, int b, int c, int d) {
// return a + b + c + d;
//}
//可变参数 数据类型... 变量名
private static int addMthod(int... a) {
//可变参数本质上是个数组
// System.out.println(a.length);
int sum=0;
for(int num:a){
sum+=num;
}
return sum;
}
}
Arrays工具类的asList()方法的使用:
Arrays工具类的asList(T... t)方法的使用: 将数组转换成集合
注意事项: 得到的集合长度是不可变的 你不能往这个转换后的集合中 添加元素(add) 和 删除元素(remove)