读书人

请帮忙看一上怎么实现?多谢了

发布时间: 2012-08-08 14:32:45 作者: rapoo

请各位高手帮忙看一下如何实现?谢谢了。

Java code
List<Object[]> list = new List<Object[]>();Object[] obj1 = new Object[3];obj1[0] ="用户1";   //用户名obj1[1] ="10";    //数值obj1[2] = "A";    //类型Object[] obj2 = new Object[3];obj2[0] ="用户1";obj2[1] ="20";obj2[2] = "B";Object[] obj3 = new Object[3];obj3[0] ="用户1";obj3[1] ="30";obj3[2] = "C";Object[] obj4 = new Object[3];obj4[0] ="用户1";obj4[1] ="40";obj4[2] = "D";//===============================Object[] obj5 = new Object[3];obj5[0] ="用户2";obj5[1] ="11";obj5[2] = "A";Object[] obj6 = new Object[3];obj6[0] ="用户2";obj6[1] ="33";obj6[2] = "B";Object[] obj7 = new Object[3];obj7[0] ="用户2";obj7[1] ="30";obj7[2] = "C";Object[] obj8 = new Object[3];obj8[0] ="用户2";obj8[1] ="52";obj8[2] = "D";list.add(obj1);list.add(obj2);list.add(obj3);list.add(obj4);list.add(obj5);list.add(obj6);list.add(obj7);list.add(obj8);///现在想根据这些数据,程序将如何实现  算出以下结果 :  //用户1 A值= A值/(A值+B值+C值+D值);//用户1 B值= B值/(A值+B值+C值+D值);//用户1 C值= D值/(A值+B值+C值+D值);//用户1 C值= D值/(A值+B值+C值+D值);//用户2 A值= A值/(A值+B值+C值+D值);//用户2 B值= B值/(A值+B值+C值+D值);//用户2 C值= D值/(A值+B值+C值+D值);//用户2 C值= D值/(A值+B值+C值+D值);


[解决办法]
老实用循环写吧,用两个方法,一个用于计算指定用户所有数据总和的
public int SumByName(String name,List data){
}
一个用于统计指定用户,指定选项数据总和的
public int SumByNameAndOption(String name,String option,List data){
}
[解决办法]
一定要用OO的方式做的话,这里的代码供楼主参考
Java code
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class ListDemos1 {    /**     * @param args     */    public static void main(String[] args) {        List<Object[]> list = new ArrayList<Object[]>();        Object[] obj1 = new Object[3];        obj1[0] ="用户1";   //用户名        obj1[1] ="10";    //数值        obj1[2] = "A";    //类型        Object[] obj2 = new Object[3];        obj2[0] ="用户1";        obj2[1] ="20";        obj2[2] = "B";        Object[] obj3 = new Object[3];        obj3[0] ="用户1";        obj3[1] ="30";        obj3[2] = "C";        Object[] obj4 = new Object[3];        obj4[0] ="用户1";        obj4[1] ="40";        obj4[2] = "D";        //===============================        Object[] obj5 = new Object[3];        obj5[0] ="用户2";        obj5[1] ="11";        obj5[2] = "A";        Object[] obj6 = new Object[3];        obj6[0] ="用户2";        obj6[1] ="33";        obj6[2] = "B";        Object[] obj7 = new Object[3];        obj7[0] ="用户2";        obj7[1] ="30";        obj7[2] = "C";        Object[] obj8 = new Object[3];        obj8[0] ="用户2";        obj8[1] ="52";        obj8[2] = "D";        list.add(obj1);        list.add(obj2);        list.add(obj3);        list.add(obj4);        list.add(obj5);        list.add(obj6);        list.add(obj7);        list.add(obj8);        ///现在想根据这些数据,程序将如何实现  算出以下结果 :          //用户1 A值= A值/(A值+B值+C值+D值);        //用户1 B值= B值/(A值+B值+C值+D值);        //用户1 C值= D值/(A值+B值+C值+D值);        //用户1 C值= D值/(A值+B值+C值+D值);        //用户2 A值= A值/(A值+B值+C值+D值);        //用户2 B值= B值/(A值+B值+C值+D值);        //用户2 C值= D值/(A值+B值+C值+D值);        //用户2 C值= D值/(A值+B值+C值+D值);                Map<String, User> users = new HashMap<String, User>();        for(Object[] item: list){            if (!users.containsKey(item[0])){                User u = new User();                u.name = (String)item[0];                users.put((String)item[0], u);            }            User u = users.get(item[0]);            switch (((String)item[2]).charAt(0)){            case 'A' : u.a = Integer.parseInt((String)item[1]); break;            case 'B' : u.b = Integer.parseInt((String)item[1]); break;            case 'C' : u.c = Integer.parseInt((String)item[1]); break;            case 'D' : u.d = Integer.parseInt((String)item[1]);            }        }        for (String name: users.keySet()){            User u = users.get(name);            System.out.printf("%s A值=%f;\n", u.name, (float)u.a/u.getTotal());            System.out.printf("%s B值=%f;\n", u.name, (float)u.b/u.getTotal());            System.out.printf("%s C值=%f;\n", u.name, (float)u.c/u.getTotal());            System.out.printf("%s D值=%f;\n", u.name, (float)u.d/u.getTotal());        }    }        public static class User {        String name;        public int getTotal() {            return a+b+c+d;        }        int a;        int b;        int c;        int d;    }} 

读书人网 >J2EE开发

热点推荐