50,528
社区成员
发帖
与我相关
我的任务
分享
HashMap<Integer, Integer> arm=new HashMap<Integer, Integer>();
HashMap<Integer, Integer> body=new HashMap<Integer, Integer>();
HashMap<Integer, Integer> head=new HashMap<Integer, Integer>();
HashMap<Integer, Integer> leg=new HashMap<Integer, Integer>();
HashMap<Integer, Integer> wst=new HashMap<Integer, Integer>();
.
.
.
public void setSidpoint(int[] SID,int[] skillNum) {
List<Integer> armSid=this.equipArm.getSid();
List<Integer> armPoint=this.equipArm.getPoint();
HashMap<Integer,Integer> map1=new HashMap<Integer, Integer>();
for(int i=0;i<armSid.size();i++){
map1.put(armSid.get(i), armPoint.get(i));
}
List<Integer> bodySid=this.equipBody.getSid();
List<Integer> bodyPoint=this.equipBody.getPoint();
HashMap<Integer,Integer> map2=new HashMap<Integer, Integer>();
for(int i=0;i<bodySid.size();i++){
if(map1.containsKey(bodySid.get(i))){
Iterator<Map.Entry<Integer,Integer>> it=map1.entrySet().iterator();
while(it.hasNext()){
Map.Entry<Integer, Integer> entry=it.next();
int key=entry.getKey();
int value=entry.getValue();
if(key==bodySid.get(i)){
value+=bodyPoint.get(i);
}
map1.put(key, value);
}
}
map2.put(bodySid.get(i), bodyPoint.get(i));
}
map2.putAll(map1);
List<Integer> headSid=this.getEquipHead().getSid();
List<Integer> headPoint=this.getEquipHead().getPoint();
HashMap<Integer,Integer> map3=new HashMap<Integer, Integer>();
for(int i=0;i<headSid.size();i++){
Iterator<Map.Entry<Integer,Integer>> it=map2.entrySet().iterator();
while(it.hasNext()){
Map.Entry<Integer, Integer> entry=it.next();
int key=entry.getKey();
int value=entry.getValue();
if(key==headSid.get(i)){
value+=headPoint.get(i);
}
map2.put(key, value);
}
map3.put(headSid.get(i), headPoint.get(i));
}
map3.putAll(map2);
List<Integer> legSid=this.getEquipLeg().getSid();
List<Integer> legPoint=this.getEquipLeg().getPoint();
HashMap<Integer,Integer> map4=new HashMap<Integer, Integer>();
for(int i=0;i<legSid.size();i++){
Iterator<Map.Entry<Integer,Integer>> it=map3.entrySet().iterator();
while(it.hasNext()){
Map.Entry<Integer, Integer> entry=it.next();
int key=entry.getKey();
int value=entry.getValue();
if(key==legSid.get(i)){
value+=legPoint.get(i);
}
map3.put(key, value);
}
map4.put(legSid.get(i), legPoint.get(i));
}
map4.putAll(map3);
List<Integer> wstSid=this.getEquipWst().getSid();
List<Integer> wstPoint=this.getEquipWst().getPoint();
HashMap<Integer,Integer> map5=new HashMap<Integer, Integer>();
for(int i=0;i<wstSid.size();i++){
Iterator<Map.Entry<Integer,Integer>> it=map4.entrySet().iterator();
while(it.hasNext()){
Map.Entry<Integer, Integer> entry=it.next();
int key=entry.getKey();
int value=entry.getValue();
if(key==wstSid.get(i)){
value+=wstPoint.get(i);
}
map4.put(key, value);
}
map5.put(wstSid.get(i), wstPoint.get(i));
}
map5.putAll(map4);
Iterator<Map.Entry<Integer, Integer>> it=map5.entrySet().iterator();
List<Integer> tempsid=new ArrayList<Integer>();
List<Integer> temppoint=new ArrayList<Integer>();
while(it.hasNext()){
Map.Entry<Integer, Integer> entry=it.next();
int key=entry.getKey();
int value=entry.getValue();
if(key==001){
for(int i=0;i<bodySid.size();i++){
tempsid.add(bodySid.get(i));
temppoint.add((bodyPoint.get(i))*value);
}
}
}
HashMap<Integer,Integer> tempmap=new HashMap<Integer, Integer>();
for(int i=0;i<tempsid.size();i++){
Iterator<Map.Entry<Integer, Integer>> it1=map5.entrySet().iterator();
while(it.hasNext()){
Map.Entry<Integer, Integer> entry=it1.next();
int key=entry.getKey();
int value=entry.getValue();
if(key==tempsid.get(i)){
value+=temppoint.get(i);
}
map5.put(key, value);
}
}
tempmap.putAll(map5);
this.sidpoint=tempmap;
boolean flag=false;
for(int i=0;i<SID.length;i++){
Iterator<Map.Entry<Integer, Integer>> iterator=this.sidpoint.entrySet().iterator();
while(iterator.hasNext()){
Map.Entry<Integer, Integer> entry=iterator.next();
int key=entry.getKey();
int value=entry.getValue();
flag=false;
if(key==SID[i]&&value>=skillNum[i]){
flag=true;
break;
}
}
if(!flag){
break;
}
}
this.isequipment=flag;
}
import java.util.HashMap;
public class CombineMap {
public static HashMap<Integer,Integer> addTo(HashMap<Integer,Integer> target, HashMap<Integer,Integer>plus) {
Object[] os = plus.keySet().toArray();
Integer key;
for (int i=0; i<os.length; i++) {
key = (Integer)os[i];
if (target.containsKey(key))
target.put(key, target.get(key) + plus.get(key));
else
target.put(key, plus.get(key));
}
return target;
}
public static void main(String[] args) {
// 获得arm,body,head,leg,wst
// ......
HashMap<Integer,Integer> all = new HashMap<Integer,Integer>();
all = addTo(all,arm);
all = addTo(all,body);
all = addTo(all,head);
all = addTo(all,leg);
all = addTo(all,wst);
}
}