java遍历之数组遍历,list遍历,set遍历,map遍历,stream遍历,Enumeration遍历
1._遍历方式
其实遍历的就两种,对象和数组.只是哪个遍历适用于哪个而已
- for
- for增强
- foreach
- 迭代(Iterable)
- Arrays.toString
2._数组遍历
package com.demo;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
public class demo {
public static void main(String[] args) {
// 数组遍历方式
String[] arrs = {"a", "b", "c"};
// 第一种方法
for (int i = 0; i < arrs.length; i++) {
System.out.println(arrs[i]);
}
System.out.println("================");
// 第二种方式
for (String str : arrs) {
System.out.println(str);
}
System.out.println("================");
// 第三种方式
System.out.println(Arrays.toString(arrs));
}
}
2._list
方法名 | 描述 |
---|---|
void add(int index,E element) | 在此集合中的指定位置插入指定的元素 |
E remove(int index) | 删除指定索引处的元素,返回被删除的元素 |
E set(int index,E element) | 修改指定索引处的元素,返回被修改的元素 |
E get(int index) | 返回指定索引处的元素 |
package com.entify;
import java.util.ArrayList;
import java.util.Iterator;
public class Demo {
public static void main(String[] args) {
// 对象遍历方式
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
//第一种方式
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println("================");
// 第二种方式
for (String s : list) {
System.out.println(s);
}
System.out.println("================");
// 第三种方式
Iterator<String> iterator = list.iterator();
if (iterator.hasNext()) {
System.out.println(iterator.next());
}
System.out.println("================");
// 第四种方式
list.forEach(item -> System.out.println(item));
list.forEach(System.out::println); // 第四种方式第二种写法
}
}
3._set
A:添加功能
boolean add(E e);
boolean addAll(Collection<? extends E> c);
B:删除功能
boolean remove(Object o);
boolean removeAll(Collection<?> c);
void clear();
C:长度功能
int size();
D:判断功能
boolean isEmpty();
boolean contains(Object o);
boolean containsAll(Collection<?> c);
boolean retainAll(Collection<?> c);
E:获取Set集合的迭代器:
Iterator<E> iterator();
F:把集合转换成数组
Object[] toArray();
<T> T[] toArray(T[] a);
//判断元素是否重复,为子类提高重写方法
boolean equals(Object o);
int hashCode();
package com.entify;
import java.util.HashSet;
import java.util.Iterator;
public class Demo {
public static void main(String[] args) {
HashSet<String> set=new HashSet<String>();
set.add("b");
set.add("b");
set.add("a");
set.add("c");
System.out.println(set);//[a, b, c]
// 第一种方式
for (String str : set) {
System.out.println(str);
}
System.out.println("================");
// 第二种方式
Iterator it = set.iterator();
while (it.hasNext()) {
String str =(String) it.next();
System.out.println(str);
}
// 第三种方式
set.forEach(item -> System.out.println(item));
set.forEach(System.out::println); // 第四种方式第二种写法
}
}
4._map
方法名 | 说明 |
---|---|
V put(K key,V value) | 添加元素 |
V remove(Object key) | 根据键删除键值对元素 |
void clear() | 移除所有的键值对元素 |
boolean containsKey(Object key) | 判断集合是否包含指定的键 |
boolean containsValue(Object value) | 判断集合是否包含指定的值 |
boolean isEmpty() | 判断集合是否为空 |
int size() | 集合的长度,也就是集合中键值对的个数 |
V get(Object key) | 根据键获取值 |
Set keySet() | 获取所有键的集合 |
Collection values() | 获取所有值的集合 |
Set<Map.Entry<K,V>> entrySet() | 获取所有键值对对象的集合 |
package com.entify;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Demo {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
map.put(2,"b");
map.put(1,"b");
map.put(1,"a");
map.put(4,"b");
map.put(3,"c");
System.out.println(map); // {1=a, 2=b, 3=c, 4=b}
// JDK1.4中
// 遍历方法一 hashmap entrySet() 遍历
Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Integer, String> data = it.next(); // 依次获取每行的数据
Object key = data.getKey();
Object value = data.getValue();
System.out.println("key=" + key + " value=" + value);
}
System.out.println("==============================");
// JDK1.5中,应用新特性For-Each循环
// 遍历方法二
for (Map.Entry<Integer, String> data : map.entrySet()) {
Object key = data.getKey();
Object value = data.getValue();
System.out.println("key=" + key + " value=" + value);
}
System.out.println("===============================11");
// 遍历方法三 hashmap keySet() 遍历
for (Iterator i = map.keySet().iterator(); i.hasNext();) {
Object obj = i.next();
System.out.println(obj);// 循环输出key
System.out.println("key=" + obj + " value=" + map.get(obj));
}
for (Iterator i = map.values().iterator(); i.hasNext();) {
Object obj = i.next();
System.out.println(obj);// 循环输出value
}
System.out.println("===============================11");
// 遍历方法四 treemap keySet()遍历
for (Object o : map.keySet()) {
System.out.println("key=" + o + " value=" + map.get(o));
}
System.out.println("===============================11");
}
}
stream遍历
https://blog.csdn.net/weixin_44797182/article/details/120298300
6._Enumeration遍历
通过Enumeration的源码分析可得,Enumeration有两个方法:
(1)boolean hasMoreElements();//是否还有元素,如果有返回true,否则表示至少含有一个元素
(2)E nextElement();//如果Enumeration枚举对象还有元素,返回对象只能的下一个元素,否则抛出NoSuchElementException异常。
简单示例:
public class TestEnumeration{
public static void main(String[] args){
Vector v = new Vector();
v.addElement("Lisa");
v.addElement("Billy");
v.addElement("Mr Brown");
Enumeration e = v.elements();//返回Enumeration对象
while(e.hasMoreElements()){
String value = (String)e.nextElement();//调用nextElement方法获得元素
System.out.print(value);
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了