后端循环
package cn.A_Collection_Of;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
/**
* 测试List Set Map集合循环遍历
* @author Java
*
*/
public class TestCollection {
public static void main(String[] args) {
Collection.CollectionMap();
}
}
class Collection{
private static final boolean Object = false;
//各种方法遍历List
public static void CollectionList() {
List<String> list = new ArrayList<>();
list.add("BB");
list.add("CC");
list.add("AA");
list.add("DD");
/**
* 001.简单的for循环
* tips:不能在for循环的时候删除添加元素,因为删除元素之后,该元素后面的所有元素的下标减1,从而导致这个元素后面的邻居元素不能被遍历到。
*/
System.out.println("------------------------------------------------------------------------------------");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
/**
* 002.增强for循环
* tips:也被称为foreach循环,可以在遍历的时候添加、删除元素。使用CopyOnWriteArraylist可以避免报错:concurrentModificationException
*/
System.out.println("------------------------------------------------------------------------------------");
for (String string : list) {
System.out.println(string);
}
/**
* 迭代遍历
* tips:可以在循环体内使用迭代器的删除、添加方法修改集合,否则会报ConcurrentModificationException错误
*/
System.out.println("------------------------------------------------------------------------------------");
/*for(Iterator<String> iterator = list.iterator();iterator.hasNext();) {
String item = iterator.next();
System.out.println(item);
}*/
Iterator<String> iterator = list.iterator();
/*while (iterator.hasNext()) {
System.out.println(iterator.next());
}*/
/* do while循环使用 */
System.out.println("------------------------------------------------------------------------------------");
do {
System.out.println(iterator.next());
} while (iterator.hasNext());
/* foreach循环使用 */
System.out.println("------------------------------------------------------------------------------------");
list.stream().filter(o -> !o.equals("张三")).forEach(o -> {
System.out.println(o.toString());
});
}
//各种方法遍历Set
public static void CollectionSet() {
Set<String> set = new HashSet<>();
set.add("靳露露");
set.add("靳瑶瑶");
set.add("靳佳佳");
set.add("于瑶瑶");
/**
* 增强for循环
*/
System.out.println("------------------------------------------------------------------------------------");
for (String string : set) {
System.out.println(string);
}
System.out.println("------------------------------------------------------------------------------------");
for(Iterator<String> iterator = set.iterator();iterator.hasNext();) {
System.out.println(iterator.next());
}
System.out.println("------------------------------------------------------------------------------------");
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}while (iterator.hasNext());
}
//各种方法遍历Map
public static void CollectionMap() {
Map<Object, Object> map = new HashMap<>();
map.put(001, "李四");
map.put(002, "王五");
map.put(003, "张三");
map.put(004, "赵六");
/**
* 增强for循环(通过keySet)
* tips:这种方式可以遍历所有的key,并且通过key找到value;map.values()方法只能遍历value。
*/
System.out.println("------------------------------------------------------------------------------------");
for (Object integer : map.keySet()) {
System.out.println(integer +":"+ map.get(integer));
}
/**
* 增强for循环(通过entrySet)
* tips:可以再循环体内添加、删除元素,使用ConcurrentHashmap可以避免报错:concurrentModificationException
*/
System.out.println("------------------------------------------------------------------------------------");
for (Entry<Object, Object> object : map.entrySet()) {
System.out.println(object.getKey()+":"+object.getValue());
}
/**
* 迭代(通过entrySet的迭代器)
*/
System.out.println("------------------------------------------------------------------------------------");
Iterator<Entry<Object, Object>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Entry<Object, Object> m = iterator.next();
System.out.println(m.getKey() + ":" + m.getValue());
}
/* 迭代 02 */
Iterator<Map.Entry<Object, Object>> iterator;
for (iterator = map.entrySet().iterator(); iterator.hasNext(); ) {
System.out.println(JSON.toJSON(iterator.next()));
}
/**
* 只遍历values
*/
System.out.println("------------------------------------------------------------------------------------");
for(Object m:map.values()){
System.out.println(m);
}
}
}
class Collection01{
public static void CollectionList() {
List<String> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
list.add(i+" ");
}
System.out.println(list.size());
System.out.println("-------增删改查-------");
Iterator<String> iterator = list.iterator();
int i = 0;
while (iterator.hasNext()) {
if (i == 3) {
iterator.remove();
}
System.out.print(iterator.next());
i++;
}
System.out.println();
System.out.println(list.size());
}
}
前端循环
- forEach()与each()方法的区别
- forEach()为JavaScript(ES5)的方法,而each()方法是JQuery的方法
- forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
- 注意: forEach() 对于空数组是不会执行回调函数的。
var arr = ["你好","我好","大家好","才是","真的好"];
arr.forEach(function(value,index) {
// 输出为array数组的每一个元素
// 注意 value在前
console.log(value);
});
- each()方法分两种情况,$().each() 和 $.each()。
- $().each()是对页面元素的操作,此时可获取DOM元素直接操作
var arr = ["gag","grt","rthr","afds","nttr","fWGW","afgd","cvd","awx"];
$.each(arr,function(index,value) {
// 此时,each方法可以用于直接操作数组
// index在前
console.log(value);
});
- for循环使用
- for 变量递加的方式
- 可用在字符串、数组中 其中对象不能遍历
var n = ["二","一","四","三"];
for(var i=0;i<n.length;i++){
console.log("key:"+i+";"+"value:"+n[i]);
}
- for in循环使用
- for in循环的使用环境
- 可用在字符串、数组、对象中, 需注意:其中遍历对象得到的是每个key 的value值
for(var i in n){
alert("key:"+i+"--"+"value:"+n[i]);
}
for(var i of n) //这样输出代表输入其中的 value