在开发中获取集合里面的集合是很平常的一件事情,但是取数据的方法有很多种下面就简单的介绍一下:
package custom;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class Person {
public static void main(String[] args) {
getData();
}
private static void getData() {
List<String> mList = new ArrayList<>();
mList.add("高富帅");
mList.add("白富美");
mList.add("史珍香");
mList.add("黑木耳");
mList.add("方向盘");
mList.add("闪电球");
/**
* for循环获取集合里面的数据
*/
for (int i = 0; i < mList.size(); i++) {
System.out.println("获取到集合里面的数据----->" + mList.get(i));
}
/**
* 优化后的for循环 这种写法好处是:整个循环当中,预存了len的长度,这样不需要每次循环都调用底层迭代器
* (减少mList.size();调用的次数) 缺点就是:频繁操作集合里面(插入数据或者删除)数据就有误
*/
for (int i = 0, len = mList.size(); i < len; i++) {
System.out.println("获取到集合里面的数据----->" + mList.get(i));
}
/**
* for循环加强版
*/
for (String string : mList) {
System.out.println("获取到集合里面的数据----->" + string);
}
/**
* 使用迭代器Iterator正序遍历元素
*/
Iterator<String> it = mList.iterator();
while (it.hasNext()) {
String getData = it.next();
System.out.println("获取到集合里面的数据----->" + getData);
}
/**
* map取值
*/
HashMap<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "高富帅");
map.put(2, "白富美");
map.put(3, "史珍香");
map.put(4, "黑木耳");
map.put(5, "方向盘");
map.put(6, "闪电球");
// 通过Map.entrySet使用iterator遍历key和value
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Integer, String> entry = iterator.next();
System.out.println("key= " + entry.getKey() + " and value= "+ entry.getValue());
}
// 通过Map.entrySet遍历key和value,推荐,尤其是容量大时
for (Map.Entry<Integer, String> entry : map.entrySet()) {
// Map.entry<Integer,String> 映射项(键-值对) 有几个方法:用上面的名字entry
entry.getKey();
entry.getValue();
map.entrySet(); // 返回此映射中包含的映射关系的 Set视图。
System.out.println("key= " + entry.getKey() + " and value= "+ entry.getValue());
}
// 通过Map.values()遍历所有的value,但不能遍历key
for (String v : map.values()) {
System.out.println("获取到集合里面的数据----->" + v);
}
// 通过获取所有的key按照key来遍历
// Set<Integer> set = map.keySet(); //得到所有key的集合
for (Integer in : map.keySet()) {
String str = map.get(in);// 得到每个key多对用value的值
System.out.println(str);
}
}
}