16. foreach循环的使用
foreach循环是for循环的一种简写格式,只用于遍历数据集合或数组。格式为
for(Type e:collection){
//对变量的操作
}
e的类型为数组中元素值的类型,collection为要遍历的数组或集合,也可以是迭代器。
import java.util.ArrayList;
import java.util.List;
public class UseForeach {
public static void main(String[] args) {
Listlist=new ArrayList();
list.add("a");
list.add("b");
list.add("c");
System.out.print("foreach遍历集合:\n\t");
for (String string : list) {
System.out.print(string);
}
System.out.println();
String[] strs = new String[list.size()];
list.toArray(strs);
System.out.print("foreach遍历数组:\n\t");
for (String string : strs) {
System.out.print(string);
}
}
}
17 .循环体的过滤器
continue语句可以放弃本次循环体的剩余代码,不执行它们而开始下一轮的循环。本例利用continue语句实现了循环体过滤器,可以过滤老鹰字符串。
public class CycFilter {
public static void main(String[] args) {
String[] array=new String[]{"白鹿","丹顶鹤","火烈鸟","老鹰","布谷鸟","乌鸦","喜鹊","老鹰","百灵鸟"};
int EagleCount=0;
for (String string : array) {
if(string.equals("老鹰")){
System.out.println("发现一只老鹰,已捕获");
EagleCount++;
continue;
}
System.out.println("搜索鸟类,发现了:" + string);
}
System.out.print("一共有:"+EagleCount+"");
}
}
搜索鸟类,发现了:白鹿
搜索鸟类,发现了:丹顶鹤
搜索鸟类,发现了:火烈鸟
发现一只老鹰,已捕获
搜索鸟类,发现了:布谷鸟
搜索鸟类,发现了:乌鸦
搜索鸟类,发现了:喜鹊
发现一只老鹰,已捕获
搜索鸟类,发现了:百灵鸟
一共有:2
18. 循环的极限
程序为死循环,要注意取值范围
public class CycUtMost {
public static void main(String[] args) {
int end=Integer.MAX_VALUE;
int start=end-50;
int count=0;
//当整数类型到最大值再加1会回到整数类型的最小值,所以永远不可能大于end变量
for (int i = start; i <= end; i++) {
count++;
}
System.out.println("本次循环次数为:" + count);
}
}
19.冒泡排序
俩俩比较相邻的对象,若反序,则交换,直到没有反序的记录为止。
package paixu;
public class Bubble {
public static void main(String[] args) {
int[] a = {10, 23, 11, 56, 45, 26, 59, 28, 84, 79};
int temp;
System.out.println("初始排列为:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+" ");
}
//进行俩俩比较
//外层循环,决定一共走几趟
for (int i = 0; i < a.length-1; i++) {
//内层循环,开始逐个比较
for (int j = 0; j a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
System.out.println("\n" + "排好的数组为:");
for (int i = 0; i
public class QuickSort {
public static void quickSort(int[] arr, int low, int high) {
int i,j,temp,t;
if (low > high) {
return ;
}
i=low;
j=high;
//temp为基准位
temp = arr[low];
while (i < j) {
//右边向左递减
while(temp<=arr[j]&&i= arr[i] && i < j) {
i++;
}
//满足条件则交换
if (i < j) {
t=arr[j];
arr[j]=arr[i];
arr[i]=t;
}
}
//最后将基准位与i和j相等的的位置的数字交换
arr[low]=arr[i];
arr[i]=temp;
//递归调用左半数组
quickSort(arr, low, j - 1);
//递归调用右半数组
quickSort(arr, j + 1, high);
}
public static void main(String[] args){
int[] arr = {10,7,2,4,7,62,3,4,2,1,8,9,19};
quickSort(arr, 0, arr.length-1);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
}