遍历
1.数组遍历用foreach:
int[] arr=new int[10]; // 定义一个长度为10的数组arr
for(int i=0;i<arr.length;i++){
arr[i]=new Random().nextInt(10); // 创造一个[0,9]的随机数,for循环10次每次把随机产生的数放到arr数组里
}
for(int i:arr){
System.out.print(i+" "); // foreach循环遍历arr里的数
}
2.集合遍历用迭代器Iterator或foreach遍历:
// 方法一(Iterator迭代器)
// Iterator提供hasNext()和next()方法
List<Integer> scores=new ArrayList<Integer>();
// 添加元素
scores.add(100);
scores.add(20);
// iterator写法固定,不会改变
Iterator<Integer> it=scores.iterator();
while(it.hasNext()){
Integer score=it.next();
System.out.println(score);
}
// 方法二(foreach遍历)
List<Integer> scores=new ArrayList<Integer>();
// 添加元素
scores.add(100);
scores.add(20);
//foreach遍历是底层利用迭代器,这种使用非常频繁,简洁
for(Integer score : scores) {
System.out.println(score);
}
类Arrays()方法:
Arrays.toString(数组名);//排列数值,按下标排,无升序降序
Arrays.sort(数组名);//升序排列
Arrays.copyOf(需要被扩/缩容的数组名,想被扩大到/缩小到的长度);//数组需要扩大或者缩小长度
Arrays.copyOf(arr,arr.length+arr.length/2);//1.5倍扩容
数组的排序(正序、倒序)和去重
正序
int[] arr=new int[10]; // 定义一个长度为10的数组arr
for(int i=0;i<arr.length;i++){
arr[i]=new Random().nextInt(10); // 创造一个[0,9]的随机数,for循环10次每次把随机产生的数放到arr数组里
}
for(int i:arr){
System.out.print(i+" "); //遍历arr,这时这些值是没有排序的 [乱序]
}
System.out.println(); //输出控制台换行,便于观察每次打印数组的值的顺序变化
Arrays.sort(arr); //利用Arrays类的sort()从小到大排序的方法对arr数组排序
int[] brr=Arrays.copyOf(arr, arr.length);//利用Arrays类的copyOf方法复制arr数组,便于接下来的倒序操作
for(int i:brr){ //这时候遍历arr、brr都可以,因为brr是arr的复制品
System.out.print(i+" "); //遍历brr,这时brr里的排序就为从小到大
}
倒叙
for(int i=0;i<brr.length;i++){ //颠倒brr里元素index的位置
brr[i]=arr[arr.length-1-i];//当i为0,brr第一个元素变为arr最后一个元素
//(arr和brr里是一样的内容这时候,因为brr是arr的复制品)
}
System.out.println();//输出控制台换行,便于观察每次打印数组的值的顺序变化
for(int i:brr){
System.out.print(i+" ");//再次遍历brr,brr就为倒叙了
}
去重
System.out.println();//输出控制台换行,便于观察每次打印数组的值的顺序变化
List<Integer> list=new ArrayList<Integer>();//创建一个list集合对象,类型为Integer
for(Integer i:brr){ //foreach遍历倒叙的brr
if(!list.contains(i)){ //利用类List的contain()方法,list对象有没有包含i的值,contain()返回boolean值
list.add(i); //如果没有包含i,就添加i到list集合中
}
}
for(int i:list){
System.out.print(i+" "); //遍历list的元素,里面就没有重复的值了,因为没有才添加i的值
}
补充
arr数组第一个元素:arr[0]
arr数组最后一个元素:arr[arr.length-1]
枚举(Enum)
public enum TestEnum {
//枚举类
//在其他类里访问枚举类对象时,不用实例化,
//直接就是TestEnum.SPRING、TestEnum.SUMMER、TestEnum.AUTUMN、TestEnum.WINTER、
SPRING,SUMMER,AUTUMN,WINTER
//例如:访问TestEnum.SPRING返回的就是本身的内容SPRING
//例如:访问TestEnum.SPRING.ordinal()返回的就是这里的枚举内容的下标[从0开始]
///SPRING下标为0,SUMMER下标为1,AUTUMN下标为2,WINTER下标为3
}