java中for循环的几种写法

Python014

java中for循环的几种写法,第1张

以下为for循环的几种写法

/***

方法一:最普通的不加思考的写法

* <p>*优点:较常见,易于理解

* <p>* 缺点:每次都要计算list.size()*/

for (int i = 0i <list.size()i++) {

System.out.println(list.get(i))

}

/***

方法二:数组长度提取出来

* <p>* 优点:不必每次都计算

* <p>* 缺点:

1、m的作用域不够小,违反了最小作用域原则

2、不能在for循环中操作list的大小,比如除去或新加一个元素*/

int m = list.size()

for (int i = 0i <mi++) {

System.out.println(list.get(i))

}

/***

方法三:数组长度提取出来

* <p>* 优点:

1、不必每次都计算

2、所有变量的作用域都遵循了最小范围原则

* <p>* 缺点:

1、m的作用域不够小,违反了最小作用域原则

2、不能在for循环中操作list的大小,比如除去或新加一个元素*/

for (int i = 0, n = list.size()i <ni++) {

System.out.println(list.get(i))

}

/***

方法四:采用倒序的写法

* <p>* 优点:

1、不必每次都计算

2、所有变量的作用域都遵循了最小范围原则

* <p>* 缺点:

1、结果的顺序会反

2、看起来不习惯,不易读懂

* <p>* 适用场合:与显示结果顺序无关的地方:比如保存之前数据的校验*/

for (int i = list.size() - 1i >= 0i--) {

System.out.println(list.get(i))

}

/***

方法五:Iterator遍历

* <p>* 优点:简洁

* <p>* 缺点:*/

for (Iterator<String>it = list.iterator()it.hasNext()) {

System.out.println(it.next())

}

/*** 方法六:

jdk1.5新写法

* <p>* 优点:简洁结合泛型使用更简洁*

<p>* 缺点:jdk1.4向下不兼容*/

for (Object o : list) {

System.out.println(o)

}

1、逆序数组有很多种方法,比如先排序,再逆序存

public static void main(String[] args) {

int[] nums = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

System.out.print("原数组:")

for (int num : nums) {

System.out.print(num+" ")

}

System.out.print("\n倒序新数组:")

for (int num : reverseArray1(nums)) {

System.out.print(num + " ")

}

}

//1.排序后倒序

public static int[] reverseArray1(int[] nums) {

Arrays.sort(nums)

int[] reNums = new int[nums.length]

for (int i = 0i <nums.lengthi++) {

reNums[i] = nums[nums.length - 1 - i]

}

return reNums

}

//2.Collection 内置的逆序

public static int[] reverseArray2(int[] nums) {

ArrayList<Integer>list = new ArrayList<>()

for (int i = 0i <nums.lengthi++) {

list.add(nums[i])

}

Collections.reverse(list)

int [] reNums = new int[nums.length]

for (int i = 0i <nums.length i++) {

reNums[i] = list.get(i)

}

return  reNums

}

将字符串倒叙输出有多种方式,下面我罗列两种以作参考:

方法一:利用String类的toCharArray(),再倒序输出数组。

public class javatest {

public static void main(String[] args) {

String originalString = "abcdefg"

String resultString = ""

char[] charArray = originalString.toCharArray()

for (int i = charArray.length-1i>=0i--){

resultString +=charArray[i]

}

System.out.println(resultString)

}

}

方法二:使用reverse()方法

public class reverseTest {

public static void main(String[] args) {

String originalString = "abcdefg"

StringBuffer stringBuffer = new StringBuffer(originalString)

System.out.println(stringBuffer.reverse())

}

}