29. 用libgdx 写一个管理临时数组类

需求:  项目需要用到大量的数据 IntArray,IntIntMap 来辅助计算坐标,初始解决方法是建立几个temp数组,然后方法如果使用temp来计算,则命名的时候添加对应后标,后来觉得很容易搞混,并且有些资源浪费.所以写了一个管理类来管理,利用数组的size是否为0来判断.

package com.zhfy.game.framework;import com.badlogic.gdx.utils.Array;import com.badlogic.gdx.utils.IntArray;import com.badlogic.gdx.utils.IntIntMap;import com.badlogic.gdx.utils.ObjectMap;public class TempUtil {    //临时工具类,使用Intarray等所有的都从这里获取    private Array<IntArray> tempIntArrays;    private Array<IntIntMap> tempIntIntMaps;      //  int c=0;    public TempUtil(){        tempIntArrays=new Array<>();        tempIntIntMaps=new Array<>();    }    public void dispose(){        tempIntArrays.clear();        tempIntIntMaps.clear();    }    //state -1不存在 0 size==0 1 size>0    public int  getTempIntArrayState(IntArray i){        if(tempIntArrays.contains(i,false)){            if(i.size==0){                return 0;            }else{                return 1;            }        }        return -1;    }    public IntArray getTempIntArray(){        for(int c=0,cMax=tempIntArrays.size;c<cMax;c  ){            IntArray i=tempIntArrays.get(c);            if(i.size==0){                return i;            }        }        if(tempIntArrays.size>10){            int s=0;        }        IntArray n=new IntArray();        tempIntArrays.add(n);        return n;    }    public void disposeTempIntArray(IntArray i){        i.clear();    }    public void disposeAllTempIntArray(){       for(int i=0,iMax=tempIntArrays.size;i<iMax;i  ){           tempIntArrays.get(i).clear();       }    }    public IntIntMap getTempIntIntMap(){        for(int c=0,cMax=tempIntIntMaps.size;c<cMax;c  ){            IntIntMap i=tempIntIntMaps.get(c);            if(i.size==0){                return i;            }        }        IntIntMap n=new IntIntMap();        tempIntIntMaps.add(n);        return n;    }    public void disposeTempIntIntMap(IntIntMap i){        i.clear();    }    public void disposeAllTempIntIntMap(){        for(int i=0,iMax=tempIntIntMaps.size;i<iMax;i  ){            tempIntIntMaps.get(i).clear();        }    }}

TempUtil

使用方法

TempUtil tempUtil=new TempUtil ();//获取需要用到数组 IntIntMap tempIntIntMap=tempUtil.getTempIntIntMap();//TODO 自己的方法..............//注销数组 game.tempUtil.disposeTempIntIntMap(tempIntIntMap);//获取需要用到的数组IntArray tempIntArray=tempUtil.getTempIntArray();//TODO 自己的方法..............//注销数组 game.tempUtil.disposeTempIntArray(tempIntArray3);

来源:https://www.icode9.com/content-4-827601.html

(0)

相关推荐