package com.cgcl.cloudesk.manage.util;
import java.util.Vector;
import com.cgcl.cloudesk.manage.com.AppInfo;
public class ArrayUtil {
/**
* delete the elements which are in both dest[destBegin,destEnd) and src[srcBegin, srcEnd) form src
* @param src
* @param dest
* @param destBegin
* @param destEnd
*/
public static void ArraySub(AppInfo[] src, int srcBegin, int srcEnd, AppInfo[] dest, int destBegin, int destEnd)
{
if( (null == dest) || (null == src) )
return;
if( destBegin < 0 || destBegin >= destEnd)
return;
if( srcBegin < 0 || srcBegin >= srcEnd )
return;
for(int i = destBegin ; i < destEnd ; i++)
{
for(int j = 0 ; j < srcEnd; j++)
{
String destAppID = dest[i].getID();
String srcAppID = src[j].getID();
if( destAppID.equals(srcAppID) )
{
if( j < (srcEnd - 1) )
System.arraycopy(src, j+1, src, j, srcEnd-j-1);
break;
}
}
}
}
/**
* delete element whose appID equals the given appID param from src[srcBegin, srcEnd)
* @param src
* @param appID
*/
public static void ArrayDelete(AppInfo[] src, int srcBegin, int srcEnd, String appID)
{
if( null == src || null == appID)
return;
if( srcBegin >= srcEnd )
return;
for(int i = srcBegin ; i < srcEnd ; i++)
{
if( appID.equals(src[i].getID()) )
{
if( i < (srcEnd-1) )
{
System.arraycopy(src, i+1, src, i, srcEnd-i-1);
break;
}
}
}
}
public static AppInfo[] VectorToArray(Vector<AppInfo> vec)
{
if( null == vec || 0 == vec.size())
return new AppInfo[vec.size()];
AppInfo[] StringArray = new AppInfo[vec.size()];
for(int i = 0 ; i < vec.size() ; i++)
{
StringArray[i] = (AppInfo)vec.elementAt(i);
}
return StringArray;
}
public static Vector<AppInfo> ArrayToVector(AppInfo[] AppInfoArray)
{
if( null== AppInfoArray || 0 == AppInfoArray.length )
return new Vector<AppInfo>();
Vector<AppInfo> vector = new Vector<AppInfo>();
for(int i = 0 ; i < AppInfoArray.length ; i++)
{
vector.addElement(AppInfoArray[i]);
}
return vector;
}
}