日期:2014-05-20  浏览次数:20621 次

关于容器的使用
user类 里面有个name属性
money类 里面有个money属性

在控制类controller里面

Java code
//添加用户,并初始话费为0元,
    public void addUser(String u){
        
        user.setName(u);
        
        money.setMoney(0.0);
    }


现在定义了一个容器
Java code
List<User> users = new ArrayList<User>();

想把 前面添加的用户 添加到users容器里面去 没有思路 写到这里就卡住了

Java code
//将用户添加到容器中
    public void add(){
        for(int i = 0; i < 10; i ++){
            users.add(user);
        }
    }


首先 容器的大小不确定 for循环里的 i < 10 就不科学
还有users.add(user);我也觉得变扭


额 表达能力有问题 我把部分代码都贴上吧

Java code
package com.cn.control;

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

import com.cn.model.Money;
import com.cn.model.User;

public class Controller {
    
    List<User> users = new ArrayList<User>();
    Money money = new Money();
    User user = new User();
    
    
    //查询话费
    public void lookAccount(){
        System.out.println("账户:" + user.getName());
        System.out.println("余额:" + money.getMoney());
    }
    
    
    //添加用户,并初始话费为0元,
    public void addUser(String u){
        
        user.setName(u);
        
        money.setMoney(0.0);
    }
    
    //将用户添加到容器中
    public void add(){
        for(int i = 0; i < 10; i ++){
            users.add(user);
        }
    }
    
}


------解决方案--------------------
这种情况,建议把money属性转移至User类并删除Money类,毕竟money算是你这里场景中User类的一个必不可少的属性,分开来不好。

搞不懂public void add(){
for(int i = 0; i < 10; i ++){
users.add(user);
}
}
这个方法要干嘛?
------解决方案--------------------
上面的代码设计的不好,User之中应该有Money(余额)这个属性
然后数据库端设计money的default value是0.0

如果你一定要按照上面的思路去写的话,代码如下:
(只是这样的设计很不专业)
Java code

import java.util.*;

public class Controller {
    
    private Map<String,Money> map = new HashMap<String, Money>();

    //初始化查询的Map
    public void setUserMessage(User u,Money m){
        map.put(u.getUsername(), m);
    }
    
    //遍历map
    public void getUserMessage(){
        Set<String> key = map.keySet();
        for(Iterator<String> it = key.iterator();it.hasNext();) {
            String username = (String)it.next();
            Money m = map.get(username);
            System.out.println(username + "的余额是" + m.getMoney() + "元");
        }
    }
    
    public static void main(String args[]) {
        User u = new User();
        u.setUsername("zhangsan");
        
        Money m = new Money(0.0f);
        
        Controller c = new Controller();
        c.setUserMessage(u, m);
        
        c.getUserMessage();
    }
    
}

------解决方案--------------------
搞不懂楼主在干神马啊、、、
------解决方案--------------------
你的add方法设计有问题,
//将用户添加到容器中
public void add(){
for(int i = 0; i < 10; i ++){
users.add(user);
}
}

应该是
Java code

    //将用户添加到容器中
    public void add(User user){
        users.add(user);    
    }

------解决方案--------------------
你这样设计就是一个拥有名字的用户,和一个有钱的现金。