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);
标签:数组,int,libgdx,29,IntArray,tempIntArrays,com,public,size 来源: https://www.cnblogs.com/tysk/p/14300546.html