package single;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AddrTest {
public static void main(String[] args) {
String addrStr = "제주특별시 제주시,인천광역시 부평구,서울특별시 서대문구,서울특별시 강남구,인천광역시 남동구,제주특별시 서귀포시,전라북도 전주시,전라북도 군산시,인천광역시 중구,서울특별시 성북구,세종특별시 세종특별시,부산광역시 해운대구";
String[]addrArr = addrStr.split(",");
Map<String, String> addrMap = null;
List<Map<String, String>> addrList = new ArrayList<>();
Arrays.sort(addrArr);
String str = "";
for(int i = 0; i< addrArr.length - 1 ; i++) {
int blank = 0;
int blank2 = 0;
blank = addrArr[i].indexOf(" ");
blank2 = addrArr[i+1].indexOf(" ");
String nowAddr01 = addrArr[i].substring(0, blank);
String nowAddr02 = addrArr[i].substring(blank + 1, addrArr[i].length());
int idx = 0;
//맵 인덱스 찾기
for(int j= 0 ; j< addrList.size(); j++) {
Map<String, String>tmpMap = addrList.get(j);
if(tmpMap.containsKey(nowAddr01)) {
idx = j;
}
}
if(idx == 0 ) {
addrMap = new HashMap<>();
str = nowAddr02;
addrMap.put(nowAddr01, str);
addrList.add(addrMap);
}else {
addrMap = addrList.get(idx);
str = addrMap.get(nowAddr01);
str += ", " + nowAddr02;
addrMap.put(nowAddr01, str);
}
}
// last
int length = addrArr.length;
int blank = addrArr[length -1].indexOf(" ");
String result = "";
String lastAddr01 = addrArr[length - 1].substring(0, blank);
String lastAddr02 = addrArr[length - 1].substring(blank + 1, addrArr[length - 1].length());
int idx = 0;
//맵 인덱스 찾기
for(int j= 0 ; j< addrList.size(); j++) {
Map<String, String>tmpMap = addrList.get(j);
if(tmpMap.containsKey(lastAddr01)) {
idx = j;
}
}
if(idx == 0 ) {
addrMap = new HashMap<>();
str = lastAddr02;
addrMap.put(lastAddr01, str);
addrList.add(addrMap);
}else {
addrMap = addrList.get(idx);
str = addrMap.get(lastAddr01);
str += ", " + lastAddr02;
addrMap.put(lastAddr01, str);
}
System.out.println(addrList);
for(int i = 0 ; i< addrList.size(); i++) {
Map<String, String> tmpMap = addrList.get(i);
for (String key : tmpMap.keySet()) {
result += key + ">" + tmpMap.get(key) + " ";
}
}
System.out.println();
System.out.println();
System.out.println(result);
}
}
결과
[{부산광역시=해운대구}, {서울특별시=강남구, 서대문구, 성북구}, {세종특별시=세종특별시}, {인천광역시=남동구, 부평구, 중구}, {전라북도=군산시, 전주시}, {제주특별시=서귀포시, 제주시}]
부산광역시>해운대구 서울특별시>강남구, 서대문구, 성북구 세종특별시>세종특별시 인천광역시>남동구, 부평구, 중구 전라북도>군산시, 전주시 제주특별시>서귀포시, 제주시