比如,[{A=2, ID_CARD=q}, {B=2, ID_CARD=q}, {B=2, ID_CARD=s}, {c=2, ID_CARD=3}, {c=1, ID_CARD=q}]这个集合,要求id_card相同的所以map单独拿出放在list,一个都不同的放到另一个list
思路很简单:利用set集合不重复特性,找出重复的value,然后做个标记,进行分类即可!
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Day22A {
final static List<Map<String, String>> list = new ArrayList<Map<String, String>>() {
private static final long serialVersionUID = 32L;{
add(new HashMap<String, String>() {
private static final long serialVersionUID = 1L;{
put("A=2", "ID_CARD=q");
}
});
add(new HashMap<String, String>() {
private static final long serialVersionUID = 1L;{
put("B=2", "ID_CARD=q");
}
});
add(new HashMap<String, String>() {
private static final long serialVersionUID = 1L;{
put("B=2", "ID_CARD=s");
}
});
add(new HashMap<String, String>() {
private static final long serialVersionUID = 1L;{
put("C=2", "ID_CARD=3");
}
});
add(new HashMap<String, String>() {
private static final long serialVersionUID = 1L;{
put("C=1", "ID_CARD=q");
}
});
}
};
static List<Map<String, String>> listA = new ArrayList<>();
static List<Map<String, String>> listB = new ArrayList<>();
static Set<String> set = new HashSet<>();
static String str;
static boolean flag=true;
public static void main(String[] args) {
System.out.println("-------原始集合--------");
lookUp(list);
selectFun(true);
System.out.println("\r\n--------[分离A]--------");
lookUp(listA);
System.out.println("\r\n--------[分离B]--------");
lookUp(listB);
}
public static void selectFun(boolean b) {
for (Map<String, String> map : list) {
for(Map.Entry<String, String> me:map.entrySet()){
String key=me.getKey();
String value=me.getValue();
if(b) {
if(!(flag=set.add(value))){
str=value;
selectFun(false);
return;
}
}else{
if(value.equals(str)) {
listA.add(new HashMap<String,String>(){
private static final long serialVersionUID = 1L;{
put(key,value);}
});
}else {
listB.add(new HashMap<String,String>(){
private static final long serialVersionUID = 1L;{
put(key,value);}
});
}
}
}
}
}
public static void lookUp(List<Map<String,String>> list) {
for (Map<String,String> map : list) {
for(Map.Entry<String, String> me:map.entrySet()){
String key=me.getKey();
String value=me.getValue();
System.out.println(key+","+value);
}
}
}
}
List<map<string,string>>类型的集合,分离出重复的map值和不重复的?
static List<Map<String, String>> listB = new ArrayList<>();static Set<String> set = new HashSet<>();static String str;static boolean flag=true;public static void main(String[] args) { System.out.println("---原始集合---");lookUp(list);selectFun(true);System.out.println(...
mybatis如何遍历List<Map<String,String>>,重点是map里面的key名字和数 ...
第一个foreach标签里面你的item是mapS,你后面用的maps当然要报错了,这个是要大小写严格区分的
java的List集合里面放了Map,List<Map<String,Object>>,如何判定人名相同...
public class Test2 {public static void main(String[] args) {Map<String, String> map1 = new MyMap<>();map1.put("name", "张三");map1.put("公司", "腾讯");Map<String, String> map2 = new MyMap<>();map2.put("name", "李四");map2.put("公司", "阿里");Map<Strin...
Android 移除ArrayList<HashMap<String, String>>中的重复
\/\/构造你的集合初始化数据ArrayList<HashMap<String, String>> olist= new ArrayList<HashMap<String, String>>();HashMap<String, String> map = new HashMap<String, String>();map.put("123","123");for(int i=0;i<10;i++){olist.add(map);}System.out.println(olist.size()); ...
java中怎样去除list中重复的数据,并且显示重复数据的条数
其实你这个问题,总来说就是按照集合中的字符串进行分类,并统计数量,Stream只用简单的代码就完成复杂的操作,代码如下 List<String> list = Arrays.asList("day", "walipo", "day", "walipo", "legeand", "day", "douwbo", "day", "day");Map<String, Long> collect = list.stream()...
List<Map<String, String>> java怎么遍历
java中遍历list可以使用keyset来遍历,示例如下:Map<String,Object> map = new HashMap<String, String>(); map.put("1", "fds"); map.put("2", "valu"); List<Map<String, String>> list = new ArrayList<Map<String, String>>(); list.add(map); for (Map<String...
android 如果map<string,map<string,list<string>>> 怎么取出list值
参考如下代码:for(int i=0;i<mapList.size();i++){ Map<String,Object> map= mapList.get(i);Set<String> set = map.keySet();Iterator<String> its = set.iterator();while (its.hasNext()) { \/\/ key String key = its.next();\/\/ value Object value = map.get(key);} } ...
java List<map>赋值的问题
map = new HashMap<String, String>(); \/\/map要重新new不然还是上一个map map.put("key", "B"); map.put("key", "B"); finishMapList.add(map); model.addAttribute("finishMapList", finishMapList); return "rm\/riskmanager\/isfinishtreatment"; }map要重新new不然...
List<Map<String,String>>如何修改里面的元素
你不能放进去了。因为类型是不通用的。你的Fsdz的属性 不一定是String,而formatter的返回结果是String。如果你的Fsdz的属性都是String,那么重新对属性进行赋值操作就可以,不需要考虑“放进去”,因为你根本也没取出来,只是逐个访问 逐个修改。
List、Set、Map三种集合的区别
Set(集合)List(列表)Map(键值对)具体分析 Set集合:Set接口是Collection接口的一个子接口,是无序的,set中不包含重复的元素,也就是说set中不存在两个相同的元素,在添加数据时会根据当前这个元素的hash值去比较集合中已有的元素,如果已存在相同的集合,添加方法会返回一个false,表示添加失败。主...