Utility增加containsMatch、removeMatch方法
This commit is contained in:
@@ -920,6 +920,123 @@ public final class Utility {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将指定的short元素是否数组中完全包含,重复元素的次数也要相同 <br>
|
||||||
|
* 例如: <br>
|
||||||
|
* containsMatch(new short[]{1, 2, 2, 3, 3, 3}, 1, 2, 3, 3) = true <br>
|
||||||
|
* containsMatch(new short[]{1, 2, 2, 3, 3, 3}, 1, 1, 2, 3, 3) = false <br>
|
||||||
|
*
|
||||||
|
* @param array 原数组
|
||||||
|
* @param items short[]
|
||||||
|
*
|
||||||
|
* @return 是否完全包含
|
||||||
|
*/
|
||||||
|
public static boolean containsMatch(final short[] array, final short... items) {
|
||||||
|
if (array == null && items == null) return true;
|
||||||
|
if (array == null && items.length == 0) return true;
|
||||||
|
if (array == null) return false;
|
||||||
|
if (items == null || items.length == 0) return true;
|
||||||
|
if (array.length == 0 && items.length == 0) return true;
|
||||||
|
if (array.length < items.length) return false;
|
||||||
|
|
||||||
|
short[] subs = array;
|
||||||
|
for (short item : items) {
|
||||||
|
if (!contains(subs, item)) return false;
|
||||||
|
short[] newsubs = new short[subs.length - 1];
|
||||||
|
int k = 0;
|
||||||
|
boolean done = false;
|
||||||
|
for (short v : subs) {
|
||||||
|
if (done) {
|
||||||
|
newsubs[k++] = v;
|
||||||
|
} else if (v == item) {
|
||||||
|
done = true;
|
||||||
|
} else {
|
||||||
|
newsubs[k++] = v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
subs = newsubs;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将指定的int元素是否数组中完全包含,重复元素的次数也要相同 <br>
|
||||||
|
* 例如: <br>
|
||||||
|
* containsMatch(new int[]{1, 2, 2, 3, 3, 3}, 1, 2, 3, 3) = true <br>
|
||||||
|
* containsMatch(new int[]{1, 2, 2, 3, 3, 3}, 1, 1, 2, 3, 3) = false <br>
|
||||||
|
*
|
||||||
|
* @param array 原数组
|
||||||
|
* @param items int[]
|
||||||
|
*
|
||||||
|
* @return 是否完全包含
|
||||||
|
*/
|
||||||
|
public static boolean containsMatch(final int[] array, final int... items) {
|
||||||
|
if (array == null && items == null) return true;
|
||||||
|
if (array == null && items.length == 0) return true;
|
||||||
|
if (array == null) return false;
|
||||||
|
if (items == null || items.length == 0) return true;
|
||||||
|
if (array.length == 0 && items.length == 0) return true;
|
||||||
|
if (array.length < items.length) return false;
|
||||||
|
|
||||||
|
int[] subs = array;
|
||||||
|
for (int item : items) {
|
||||||
|
if (!contains(subs, item)) return false;
|
||||||
|
int[] newsubs = new int[subs.length - 1];
|
||||||
|
int k = 0;
|
||||||
|
boolean done = false;
|
||||||
|
for (int v : subs) {
|
||||||
|
if (done) {
|
||||||
|
newsubs[k++] = v;
|
||||||
|
} else if (v == item) {
|
||||||
|
done = true;
|
||||||
|
} else {
|
||||||
|
newsubs[k++] = v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
subs = newsubs;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将指定的long元素是否数组中完全包含,重复元素的次数也要相同 <br>
|
||||||
|
* 例如: <br>
|
||||||
|
* containsMatch(new long[]{1, 2, 2, 3, 3, 3}, 1, 2, 3, 3) = true <br>
|
||||||
|
* containsMatch(new long[]{1, 2, 2, 3, 3, 3}, 1, 1, 2, 3, 3) = false <br>
|
||||||
|
*
|
||||||
|
* @param array 原数组
|
||||||
|
* @param items long[]
|
||||||
|
*
|
||||||
|
* @return 是否完全包含
|
||||||
|
*/
|
||||||
|
public static boolean containsMatch(final long[] array, final long... items) {
|
||||||
|
if (array == null && items == null) return true;
|
||||||
|
if (array == null && items.length == 0) return true;
|
||||||
|
if (array == null) return false;
|
||||||
|
if (items == null || items.length == 0) return true;
|
||||||
|
if (array.length == 0 && items.length == 0) return true;
|
||||||
|
if (array.length < items.length) return false;
|
||||||
|
|
||||||
|
long[] subs = array;
|
||||||
|
for (long item : items) {
|
||||||
|
if (!contains(subs, item)) return false;
|
||||||
|
long[] newsubs = new long[subs.length - 1];
|
||||||
|
int k = 0;
|
||||||
|
boolean done = false;
|
||||||
|
for (long v : subs) {
|
||||||
|
if (done) {
|
||||||
|
newsubs[k++] = v;
|
||||||
|
} else if (v == item) {
|
||||||
|
done = true;
|
||||||
|
} else {
|
||||||
|
newsubs[k++] = v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
subs = newsubs;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除掉字符串数组中包含指定的字符串
|
* 删除掉字符串数组中包含指定的字符串
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user