现在工作中,有个功能模块是这样的:两个类:
class UserName{
   String userName = null;
/*get(),set() .....*/}class WorkName{
   String workName = null;
/*get(),set() .....*/}
要求达到这种效果:UserName:  小明    张三   ...  
WorkName:  销售    售后   ...
要求组合成: 
            小明 销售            小明 售后
            
            张三 销售            张三 售后
 
            ...  ...
请教各位:如何实现以上的要求。使用什么算法最合适? 

解决方案 »

  1.   

    用两个for循环就可以了吧
    假如所有的 username放到了list集合中---List<UserName> usernameList=new ArrayList<UserName>();
       所有的workname 放到了list集合中---List<WorkName> worknameList=new ArrayList<WorkName>();for(UserName user: usernameList)
    {
      for(WorkName work:worknameList)
       {    System.out.println(user.getUserName()+" "+work.getWorkName());    }}
    就应该能出来楼主要的效果啊,希望对你能有帮助!
      

  2.   

    WorkName:public class WorkName { private String workName;

    public WorkName() {

    }

    public WorkName(String workName) {
    this.workName = workName;
    } public String getWorkName() {
    return workName;
    } public void setWorkName(String workName) {
    this.workName = workName;
    } public String toString() {
    return this.getWorkName();
    }
    }UserName:public class UserName { private String userName; public UserName() { } public UserName(String userName) {
    this.userName = userName;
    } public String getUsername() {
    return userName;
    } public void setUsername(String userName) {
    this.userName = userName;
    } public String toString() {
    return this.getUsername();
    }
    }
    User:[关联两个类]public class User { private UserName userName; private WorkName workName; public UserName getUserName() {
    return userName;
    } public void setUserName(UserName userName) {
    this.userName = userName;
    } public WorkName getWorkName() {
    return workName;
    } public void setWorkName(WorkName workName) {
    this.workName = workName;
    } public String toString() {
    return this.getUserName().toString() + this.getWorkName().toString();
    }
    }测试客户端代码:import java.util.ArrayList;
    import java.util.List;public class Client { public static void main(String[] args) {
    UserName uname1 = new UserName("小明");
    UserName uname2 = new UserName("张三"); WorkName wname1 = new WorkName("销售");
    WorkName wname2 = new WorkName("售后"); List<UserName> unameList = new ArrayList<UserName>();
    unameList.add(uname1);
    unameList.add(uname2); List<WorkName> workNameList = new ArrayList<WorkName>();
    workNameList.add(wname1);
    workNameList.add(wname2); List<User> list = new ArrayList<User>();
    for (UserName username : unameList) {
    for (WorkName workname : workNameList) {
    User user = new User();
    user.setUserName(username);
    user.setWorkName(workname);
    list.add(user);
    }
    } int i = 1;
    for (User user : list) {
    System.out.println(i + " : " + user.toString());
    i++;
    }
    }}
      

  3.   

    没有实战经验,不过我想,如果UserName里组合WorkName就可以了。没有必要在WorkName里再组合UserName,否则就太乱了。
    class UserName{
       String userName=null;
       WorkName workName=null;
       UserName(String userName,WorkName workName){
            this.userName=userName;
            this.workName=workName;
       }
       /* set(),get()....*/
    }