LIst和map的遍历
1.
public static void main(String[] args) {
// ArrayList类实现一个可增长的动态数组
List<String> list = new ArrayList<String>();
// 插入元素
list.add("list1");
list.add("list2");
// 打印list的大小
System.out.println(list.size());
// 按索引移除元素
list.remove(0);
// 按对象移除元素
list.remove("list2");
// 打印list的大小
System.out.println(list.size());
// 清空list
list.clear();
}
2.linkedList
public static void main(String[] args) {
// LinkedList类实现了链表,可初始化化为空或者已存在的集合
LinkedList<String> list = new LinkedList<String>();
// 插入元素
list.add("list2");
list.add("list3");
// 向链表头插入数据
list.addFirst("list1");
// 向链表尾插入数据
list.addLast("list4");
for (String str : list) {
System.out.println(str);
}
// 获取链表头数据
System.out.println("链表头数据:" + list.getFirst());
// 获取链表尾数据
System.out.println("链表尾数据:" + list.getLast());
}
排序
public static void main(String[] args) {
// 创建list
List<Integer> list = new ArrayList<Integer>();
// 插入元素
list.add(2);
list.add(0);
list.add(3);
list.add(4);
list.add(1);
Collections.sort(list);
for (int i : list) {
System.out.println(i);
}
}
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("一鸣惊人-Y");
list.add("人山人海-R");
list.add("海阔天空-H");
list.add("空前绝后-K");
list.add("后来居上-H");
Comparator<Object> cmp = Collator.getInstance(java.util.Locale.CHINA);
Collections.sort(list, cmp);
for (String str : list) {
System.out.println(str);
}
}
package net.xsoftlab.baike;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class TextList {
public static void main(String[] args) {
List<User> userlist = new ArrayList<User>();
userlist.add(new User("Y - 易小星 ", 33));
userlist.add(new User("W - 王大锤", 33));
Comparator<User> cmp = new ComparatorUser();
Collections.sort(userlist, cmp);
for (User user : userlist) {
System.out.println(user.getName());
}
}
}
class ComparatorUser implements Comparator<User> {
@Override
public int compare(User u1, User u2) {
// 先按年龄排序
int flag = u1.getAge().compareTo(u2.getAge());
// 年龄相等比较姓名
if (flag == 0) {
return u1.getName().compareTo(u2.getName());
} else {
return flag;
}
}
}
class User {
private String name;
private Integer age;
public User() {
super();
}
public User(String name, Integer age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
遍历
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
// 插入元素
list.add("list1");
list.add("list2");
list.add("list3");
System.out.println("第一种遍历方法 - >");
for (String str : list) {
System.out.println(str);
}
System.out.println("第二种遍历方法 - >");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println("第三种遍历方法 - >");
Iterator<String> iter = list.iterator();
while (iter.hasNext()) {
System.out.println(iter.next());
}
}
遍历时移除元素
package net.xsoftlab.baike;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class RemoveItemFromList {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
// 插入元素
list.add("list1");
list.add("list2");
list.add("list2");
list.add("list3");
// 实例化新的list防止因传递地址而达不到测试效果。
remove1(new ArrayList<String>(list));
remove2(new ArrayList<String>(list));
remove2_1(new ArrayList<String>(list));
remove3(new ArrayList<String>(list));
}
public static void remove1(List<String> list) {
System.out.print("第一种方法 - > ");
try {
for (String str : list) {
if (str.equals("list2"))
list.remove(str);
}
} catch (Exception e) {
System.out.println("移除失败!");
}
}
public static void remove2(List<String> list) {
System.out.print("第二种方法 - > ");
for (int i = 0; i < list.size(); i++) {
String str = list.get(i);
if (str.equals("list2"))
list.remove(str);
}
System.out.println(list);
System.out.println("也有异常,可以用下面的方法避免。");
}
public static void remove2_1(List<String> list) {
System.out.print("第二种方法修正 - > ");
for (int i = 0; i < list.size(); i++) {
String str = list.get(i);
if (str.equals("list2")) {
list.remove(str);
// 因移除了元素,位置发生偏移,需要重新对当前位置的元素进行判断。
i--;
}
}
System.out.println(list);
}
public static void remove3(List<String> list) {
System.out.print("第三种方法 - > ");
Iterator<String> iter = list.iterator();
while (iter.hasNext()) {
String str = iter.next();
if (str.equals("list2"))
iter.remove();
}
System.out.println(list);
}
}
map4中遍历
public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>();
map.put("1", "value1");
map.put("2", "value2");
map.put("3", "value3"); //第一种:普遍使用,二次取值
System.out.println("通过Map.keySet遍历key和value:");
for (String key : map.keySet()) {
System.out.println("key= "+ key + " and value= " + map.get(key));
} //第二种
System.out.println("通过Map.entrySet使用iterator遍历key和value:");
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
} //第三种:推荐,尤其是容量大时
System.out.println("通过Map.entrySet遍历key和value");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
} //第四种
System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
for (String v : map.values()) {
System.out.println("value= " + v);
}
}
LIst和map的遍历的更多相关文章
- mybatis map foreach遍历
mybatis map foreach遍历 转至http://www.cnblogs.com/yg_zhang/p/4314602.html mybatis 遍历map实例 map 数据如下 Map& ...
- Java集合的Stack、Queue、Map的遍历
Java集合的Stack.Queue.Map的遍历 在集合操作中,常常离不开对集合的遍历,对集合遍历一般来说一个foreach就搞定了,但是,对于Stack.Queue.Map类型的遍历,还是有一 ...
- Java Map各遍历方式的性能比较
1. 阐述 对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多.理由是:entrySet方法一次拿到所有key和value的集合:而keySet拿到的 ...
- list集合,map集合遍历
import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** *遍历集合List * @autho ...
- Map的遍历方式
public class Mapper { public static void main(String[] args) { Map<String, String> map = new ...
- java Map的遍历
List下的Map的遍历方法 List<String> Keys =new ArrayList<String>(); ){ ;row<SheetData.size() ; ...
- Map的遍历方法及String和其它类型的相互转化
Map的遍历方法: package com.lky.test; import java.util.HashMap; import java.util.Iterator; import java.uti ...
- Map 的遍历
一.Map的遍历 在后面java的开发过程中会遇到Map类的使用,然而map的遍历是一大问题. Map遍历用两种比较交代的方法: package edu.map; import java.util.H ...
- java map集合 --遍历
1.Map 遍历: Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "a& ...
- Map集合遍历的四种方式理解和简单使用
~Map集合是键值对形式存储值的,所以遍历Map集合无非就是获取键和值,根据实际需求,进行获取键和值 1:无非就是通过map.keySet()获取到值,然后根据键获取到值 for(String s:m ...
随机推荐
- DeepMind用ReinforcementLearning玩游戏
原文 : http://dataunion.org/?p=639 1.引言 说到机器学习最酷的分支,非Deep learning和Reinforcement learning莫属(以下分别简称DL和 ...
- Matlab与C++混合编程
原文链接:http://blog.csdn.net/zouxy09/article/details/20553007 一不小心,成了一个忠实复制者...
- 基于Nginx的SSL虚拟主机
通过私钥,证书对站点www.test.com的所有数据加密,实现通过https访问www.test.com 环境说明: 源码安装Nginx时必须使用--with-http_ssl_module参数,启 ...
- Python中生成器,迭代器,以及一些常用的内置函数.
知识点总结 生成器 生成器的本质就是迭代器. 迭代器:Python中提供的已经写好的工具或者通过数据转化得来的. 生成器:需要我们自己用Python代码构建的 创建生成器的三种方法: 通过生成器函数 ...
- Codevs 1077 多源最短路( Floyd水 )
链接:传送门 思路:裸 Floyd /************************************************************************* > Fi ...
- [CodeForces]986A Fair
大意:给一张图,每个图上有一个数,问以每个点为源点,经过的点包含k种数字的最小距离. 显然跑最短路会T,但我们注意到边权一定.某次学校考试就是类似题,可以bfs做,复杂度O(n),每种货物做一次,复杂 ...
- 【codeforces 807A】Is it rated?
[题目链接]:http://codeforces.com/contest/807/problem/A [题意] 给你n个人在一场CF前后的rating值; 问你这场比赛是不是计分的 [题解] 如果有一 ...
- WebService学习总结(6)——WebService常用接口
商业和贸易:1.股票行情数据 WEB 服务(支持香港.深圳.上海基金.债券和股票:支持多股票同时查询) Endpoint: http://webservice.webxml.com.cn/WebSer ...
- RobotFrameWork+APPIUM实现对安卓APK的自动化测试----第四篇【AppiumLibrary实用函数介绍】
http://blog.csdn.net/deadgrape/article/details/50585677 通过前几篇的讲述,我相信大家已经对RF+Appium的框架已经有所了解了. 接下来我告诉 ...
- BA-传感器
01.室内温度传感器 壁装,西门子,QAA2061D 1.默认范围:温度0-50℃,湿度0-100% 2.供电方式:24vac 3.穿线方式:4芯屏蔽线 02.风管温度传感器 西门子,QAM2120. ...