标签:style blog class code java tar javascript width color get int
今天要说的是给List分组,然后用Map来封装,可能你看了以后还是有一些模糊。
先看一下项目结构图:
User类是一个VO类,主要逻辑还是在MapTestBak上面。
运行效果:
原理图:
1.在starsList中有两组人,共三人
2.在dolList中有一组人,共两人
3.经过marched操作,最后匹配到一组人到result中。即第一组人。
原理很简单。
===================================================
源码部分:
===================================================
/mapTest/src/com/b510/map/MapTestBak.java
1 /**
2 *
3 */
4 package com.b510.map;
5
6 import java.util.ArrayList;
7 import java.util.HashMap;
8 import java.util.List;
9 import java.util.Map;
10
11 /**
12 * @author Hongten
13 * @created Apr 28, 2014
14 */
15 public class MapTestBak {
16
17 public static void main(String[] args) {
18 mapTest();
19 }
20
21 /**
22 *
23 */
24 private static void mapTest() {
25 // starsList
26 List starsList = getStarsList();
27
28 // dolList
29 List dolList = getDolList();
30
31 Map> map = groupingHandler(starsList);
32 // test
33 groupingHandlerTest(map);
34
35 System.out.println("======= group finished =======");
36 List
/mapTest/src/com/b510/map/User.java
1 /**
2 *
3 */
4 package com.b510.map;
5
6 /**
7 * @author Hongten
8 * @created Apr 28, 2014
9 */
10 public class User {
11
12 private int groupNO;
13 private String name;
14
15 public int getGroupNO() {
16 return groupNO;
17 }
18
19 public User(int groupNO, String name) {
20 this.groupNO = groupNO;
21 this.name = name;
22 }
23
24 public void setGroupNO(int groupNO) {
25 this.groupNO = groupNO;
26 }
27
28 public String getName() {
29 return name;
30 }
31
32 public void setName(String name) {
33 this.name = name;
34 }
35
36 }
我想要记录一下的是方法:compare(List dolList, Map> map)
1 private static List>> compare(List dolList, Map> map) {
2 List>> tempList = new ArrayList>>();
3 if (null != map) {
4 for (String key : map.keySet()) {
5 List u = map.get(key);
6 List comList = new ArrayList();
7 boolean comFlag = true;
8 for (User us : u) {
9 List comList1 = new ArrayList();
10 for (User ul : dolList) {
11 if (us.getGroupNO() == ul.getGroupNO() && us.getName().trim().equals(ul.getName().trim())) {
12 comList1.add(1);
13 } else {
14 comList1.add(0);
15 }
16 }
17 if (comList1.contains(1)) {
18 // name has existed.
19 comList.add(1);
20 } else {
21 comList.add(0);
22 }
23 }
24 if (comList.contains(0)) {
25 comFlag = false;
26 }
27 // print out the match result in the console.
28 printMatchResult(tempList, key, u, comFlag);
29 }
30 }else{
31 System.out.println("map is null!");
32 }
33 return tempList;
34 }
在这个方法中,这里使用了两个List(即:comList, comList1)来记录是否完全匹配。
========================================================
多读一些书,英语很重要。
More reading,and english is important.
I‘m Hongten
========================================================
java中的List记录是否完全匹配方法,搜素材,soscw.com
java中的List记录是否完全匹配方法
标签:style blog class code java tar javascript width color get int
原文地址:http://www.cnblogs.com/hongten/p/java_list_map_marched.html