今天工作上遇见这方面的需求,自己写了两个方法,贡献上来,抛砖引玉。
#数组删除指定内容
/**
* @param content 要删除内容的数组
* @param specific 删除的内容
* @return 删除指定内容后的数组
*/
public <T> T[] arraySpeDel(T[] content, T specific) {
int len = content.length;
for (int i = 0; i < content.length; i++) {
if (content[i].equals(specific)) {
System.arraycopy(content, i + 1, content, i, len - 1 - i);
break;
}
}
return Arrays.copyOf(content, len - 1);
}
#数组添加内容
/**
* @param src 源数组
* @param specific 动态参数
* @param <T>
* @return 返回源数组同等类型的数组
*/
public <T> T[] arrayAdd(T[] src,T... specific) {
//返回类的组件类型的数组。如果这个类并不代表一个数组类,此方法返回null。
Class<?> type=src.getClass().getComponentType();
T[] temp= (T[]) Array.newInstance(type,src.length+specific.length);
System.arraycopy(src, 0, temp, 0, src.length);
for (int i = 0; i <specific.length ; i++) {
temp[src.length+i]=specific[i];
}
return temp;
}
如果有不懂的,可以关注我的公众号 “知我饭否” 向我留言。我也会每天更新一些文章,有兴趣的可以扫描下方的二维码。