java集合有关问题,请大家帮帮忙,有此类有关问题告诉小弟我!多谢
java集合问题,请大家帮帮忙,有此类问题告诉我!谢谢
List<List<User>> list=new ArrayList<List<User>>();
List<User> users=new ArrayList<User>();
User u1=new User();
u1.setId(1);
u1.setName("a1");
u1.setSl(10);
User u2=new User();
u2.setId(1);
u2.setName("a2");
u2.setSl(20);
User u3=new User();
u3.setId(1);
u3.setName("a3");
u3.setSl(30);
users.add(u1);
users.add(u2);
users.add(u3);
list.add(users);
List<User> users1=new ArrayList<User>();
User u4=new User();
u4.setId(2);
u4.setName("a4");
u4.setSl(50);
users1.add(u4);
list.add(users1);
List<User> users2=new ArrayList<User>();
User u5=new User();
u5.setId(3);
u5.setName("a5");
u5.setSl(10);
users2.add(u5);
User u6=new User();
u6.setId(3);
u6.setName("a6");
u6.setSl(50);
users2.add(u6);
list.add(users2);
list.add(users);
list.add(users1);
相同id的user统一的减去60,最后不高的数量减成负数,然后再放到集合中,最后的答案是
user id=1 的sl属性值为 0,0,0
user id=2 的sl属性值为 -1
user id=3 的sl属性值为 0,0
请各位大侠,帮帮解决一下,谢谢了!或是相同的问题给个思路
------解决方案--------------------
能简述下你的需求吗?
------解决方案--------------------
List<List<User>> list=new ArrayList<List<User>>();
List<User> users=new ArrayList<User>();
User u1=new User();
u1.setId(1);
u1.setName("a1");
u1.setSl(10);
User u2=new User();
u2.setId(1);
u2.setName("a2");
u2.setSl(20);
User u3=new User();
u3.setId(1);
u3.setName("a3");
u3.setSl(30);
users.add(u1);
users.add(u2);
users.add(u3);
list.add(users);
List<User> users1=new ArrayList<User>();
User u4=new User();
u4.setId(2);
u4.setName("a4");
u4.setSl(50);
users1.add(u4);
list.add(users1);
List<User> users2=new ArrayList<User>();
User u5=new User();
u5.setId(3);
u5.setName("a5");
u5.setSl(10);
users2.add(u5);
User u6=new User();
u6.setId(3);
u6.setName("a6");
u6.setSl(50);
users2.add(u6);
list.add(users2);
list.add(users);
list.add(users1);
相同id的user统一的减去60,最后不高的数量减成负数,然后再放到集合中,最后的答案是
user id=1 的sl属性值为 0,0,0
user id=2 的sl属性值为 -1
user id=3 的sl属性值为 0,0
请各位大侠,帮帮解决一下,谢谢了!或是相同的问题给个思路
------解决方案--------------------
能简述下你的需求吗?
------解决方案--------------------
- Java code
public void subtract(List<List<User>> list, int x) { User user; int sub,sl; List<User> l; for (int i=0; i<list.size(); i++) { l = list.get(i); sub = x; for (int j=0; j<l.size(); j++) { user = l.get(j); sl = user.getSl(); if (j==l.size()-1) { user.setSl(sl-sub); // 最后一个直接减,哪怕会成为负数 // if(sl<sub) user.setSl(-1); //或者在减成负数后设成-1?你举的例子是-1 } else { user.setSl(sl>=sub?sl-sub:0); sub = sub - sl; if (sub<=0) break; } } } }