ArrayList集合储存HashMap元素并遍历
需求:创建一个Arraylist集合,储存三个元素,每一个元素都是HashMap,每一个HashMap的键和值都是String。并遍历
package Demo39;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.ServiceConfigurationError;
import java.util.Set;
public class Demo39 {
public static void main(String[] args) {
//创建HashMap集合
ArrayList<HashMap<String,String>> sc = new ArrayList<>();
//创建Hashmap集合,并添加键值元素
HashMap<String,String> h1 = new HashMap<>();
h1.put("A","a");
h1.put("B","b");
sc.add(h1);
HashMap<String,String> h2 = new HashMap<>();
h2.put("A1","a1");
h2.put("B1","b1");
sc.add(h2);
HashMap<String,String> h3 = new HashMap<>();
h3.put("A2","a2");
h3.put("B2","b2");
//键HashMap作为元素添加到ArrayList集合
sc.add(h3);
//遍历
for(HashMap<String,String> hm : sc){
Set<String> keySet = hm.keySet();
for(String key : keySet){
String value = hm.get(key);
System.out.println(key+","+value);
}
}
}
}
HaspMap集合储存ArrayList元素并遍历
package Demo40;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;
public class Demo40 {
public static void main(String[] args) {
HashMap<String, ArrayList<String>> su = new HashMap<String, ArrayList<String>>();
ArrayList<String> sgyy = new ArrayList<>();
sgyy.add("关羽");
sgyy.add("刘备");
ArrayList<String> shz = new ArrayList<>();
shz.add("武松");
sgyy.add("鲁智深");
ArrayList<String> xyj = new ArrayList<>();
xyj.add("孙悟空");
xyj.add("唐僧");
//把ArrayList作为元素添加到HashMap集合中
su.put("三国演义",sgyy);
su.put("水浒传",shz);
su.put("西游记",xyj);
//遍历
Set<String> keySet = su.keySet();
for(String key : keySet){
System.out.println(key);
ArrayList<String> value = su.get(key);
for(String s : value){
System.out.println("\t"+s);
}
}
}
}
/*
水浒传
武松
三国演义
关羽
刘备
鲁智深
西游记
孙悟空
唐僧
*/
统计字符串中每个字符出现的次数
package Demo41;
import java.util.*;
public class Demo41 {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
System.out.println("请输入字符串");
String line = sc.nextLine();
//创建HashMap,键是Character,值是Integer
// HashMap<Character,Integer> hm = new HashMap<>();//无顺序
TreeMap<Character,Integer> hm = new TreeMap<>();//有顺序
//遍历字符串,得到每一个集合
for(int i=0 ; i<line.length();i++){
char key = line.charAt(i);
//拿得到的每一个字符作为键到HashMap集合中去找对应的值,看去返回值
Integer value = hm.get(key);
if(value==null){
hm.put(key,1);//如何值为空,则说明后面没有对应值,返回1
}else{
//如何存在,则返回值+1;然后重新储存字符串和对应的值
value++;
hm.put(key,value);
}
}
//遍历Map集合,得到键和值,然后进行对应的拼接
StringBuilder sb = new StringBuilder();
Set<Character> keySet = hm.keySet();
for(Character key : keySet){
Integer value = hm.get(key);
sb.append(key).append("(").append(value).append(")");
}
String result = sb.toString();
System.out.println(result);
}
}
Collections
Collections类的作用
- 是针对集合操作的工具类
Collections类常用方法
方法名 | 说明 |
---|---|
public static void sort(List list) | 将指定的列表按升序排序 |
public static void reverse(List list | 反转指定列表中元素的顺序 |
public static void shuffle(List list) | 使用默认的随机源随机排列指定的列表 |
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.Callable;
public class Demo42 {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(90);
list.add(20);
list.add(30);
list.add(40);
list.add(10);
Collections.sort(list);
System.out.println(list);
Collections.shuffle(list);
System.out.println(list);
Collections.reverse(list);
System.out.println(list);
}
}