数组怎么按要求组合?

List list1 = new ArrayList();
String[] str = new String[] { "a,b", "b,c", "c,d", "b,e", "e,f","h,g" };
for (String s : str) {
list1.add(s);
}
编写函数,实现将list1 中的数据输出为如下:
a,b,c,d
a,b,e,f
h,g

[code="java"]
package collection;

import java.util.ArrayList;
import java.util.List;

/**

  • List list1 = new ArrayList(); String[] str = new String[] { "a,b", "b,c", "c,d", "b,e", "e,f","h,g" }; for (String s : str) { list1.add(s); } 编写函数,实现将list1 中的数据输出为如下: a,b,c,d a,b,e,f h,g
  • @author zyn
    *
    /
    public class ArrayTest {
    public static void main(String[] args){
    String[] str = new String[] { "a,b", "b,c", "c,d", "b,e", "e,f","h,g" };
    //str的copy,不做改变
    String[] strCopy = str;
    //存放最终的list
    List strList = new ArrayList ();
    /
    *
    * a,b可能被其他的公用拼接字符串,那么从前往后拼接
    */
    for(int i=0;i<str.length;i++){
    String[] strArr = str[i].split(",");
    //str第i个字符是否和其他字符拼接,若拼接则不往strList中添加
    boolean flag = false;
    for(int ii=0;ii<strCopy.length;ii++){
    String[] strArrCopy = strCopy[ii].split(",");
    //如果str[i]的开始字符和strcopy[ii]的结束字符相同,拼接str的第ii个元素(a,b,b,c 替换b,b为b)
    if(strArr[strArr.length-1].equals(strArrCopy[0])){
    str[ii] = (str[i]+","+str[ii]).replace(strArrCopy[0]+","+strArrCopy[0], strArrCopy[0]);
    flag = true;
    }
    }
    if(!flag){
    strList.add(str[i]);
    }
    }

    for(String s:str){
        System.out.println(s);
    }
    System.out.println("****************");
    for(String s:strList){
        System.out.println(s);
    }
    

    }
    }

[/code]