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 ...
随机推荐
- java_poi
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import org.apache. ...
- jQuery添加新的元素
append() - 在被选元素的结尾插入内容 prepend() - 在被选元素的开头插入内容 after() - 在被选元素之后插入内容 before() - 在被选元素之前插入内容 $(&quo ...
- openlayers5学习笔记-map事件(moveend)
//事件:地图移动结束 tmp.map.on('moveend', function (evt) { console.log(evt.frameState.extent); }); evt.frame ...
- codeforces 789 A. Anastasia and pebbles
链接 A. Anastasia and pebbles 题意 这个人有两个口袋,有n种类型的鹅卵石,每种鹅卵石有wi个,每次可以放同一种最多k个,每次不能把不同类型的鹅卵石放进同一个口袋,但是她可以同 ...
- day02_20190106 基础数据类型 编码 运算符
一.格式化输出 name = input('请输入姓名') age = input('请输入年龄') hobby = input('请输入爱好') job = input('请输入你的工作') # m ...
- C语言提高 (6) 第六天 文件(续) 链表的操作
1昨日回顾 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include &l ...
- gradle多模块构建集成swagger
1.首先说一下软件的版本:springboot:1.5.2:springcloud:D-SR1:swaager2:2.6.0:gradle:4.5.工程模块是分开的单独的entity,api,mapp ...
- 【JavaScript框架封装】实现一个类似于JQuery的缓存框架的封装
// 缓存框架 (function (xframe) { /** * 实现了缓存框架的临时存储功能(内存存储) * @type {{data: Array, get: (function(*): *) ...
- 使用shell脚本定时备份web网站代码
#!/bin/bash ############### common file ################ #备份文件存放目录 WEBBACK_DIR="/data/backup/ba ...
- Problem 2
Problem 2 # Problem_2.py """ Each new term in the Fibonacci sequence is generated by ...