This commit is contained in:
calvin1978
2017-01-20 09:37:00 +08:00
parent 0cfccdaa03
commit 3c74dfc2ec
5 changed files with 16 additions and 14 deletions
@@ -145,7 +145,7 @@ public abstract class SetUtil {
*
* 如果尝试写入该View会抛出UnsupportedOperationException
*/
public static <E> Set<E> union(final Set<? extends E> set1, final Set<? extends E> set2) {
public static <E> Set<E> unionView(final Set<? extends E> set1, final Set<? extends E> set2) {
return Sets.union(set1, set2);
}
@@ -154,7 +154,7 @@ public abstract class SetUtil {
*
* 如果尝试写入该View会抛出UnsupportedOperationException
*/
public static <E> Set<E> intersection(final Set<E> set1, final Set<?> set2) {
public static <E> Set<E> intersectionView(final Set<E> set1, final Set<?> set2) {
return Sets.intersection(set1, set2);
}
@@ -163,7 +163,7 @@ public abstract class SetUtil {
*
* 如果尝试写入该View会抛出UnsupportedOperationException
*/
public static <E> Set<E> difference(final Set<E> set1, final Set<?> set2) {
public static <E> Set<E> differenceView(final Set<E> set1, final Set<?> set2) {
return Sets.difference(set1, set2);
}
@@ -172,7 +172,7 @@ public abstract class SetUtil {
*
* 如果尝试写入该View会抛出UnsupportedOperationException
*/
public static <E> Set<E> disjoint(final Set<? extends E> set1, final Set<? extends E> set2) {
public static <E> Set<E> disjointView(final Set<? extends E> set1, final Set<? extends E> set2) {
return Sets.symmetricDifference(set1, set2);
}
}
@@ -4,7 +4,7 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.CyclicBarrier;
import org.springside.modules.utils.concurrent.jsr166e.LongAdder;
import org.springside.modules.utils.misc.Sampler;
import org.springside.modules.utils.concurrent.throttle.Sampler;
import com.google.common.util.concurrent.RateLimiter;
@@ -33,6 +33,7 @@ public class ConcurrentTools {
return new CyclicBarrier(count);
}
/////////// 限流采样 //////
/**
* 返回漏桶算法的RateLimiter
*
@@ -41,13 +42,13 @@ public class ConcurrentTools {
public static RateLimiter rateLimiter(int permitsPerSecond) {
return RateLimiter.create(permitsPerSecond);
}
/**
* 返回采样器.
*
* @param selectPercent 采样率,在0-100 之间,可以有小数位
*/
public static Sampler sampler(double selectPercent){
public static Sampler sampler(double selectPercent) {
return Sampler.create(selectPercent);
}
}
@@ -1,4 +1,4 @@
package org.springside.modules.utils.misc;
package org.springside.modules.utils.concurrent.throttle;
import org.apache.commons.lang3.Validate;
import org.springside.modules.utils.number.RandomUtil;
@@ -78,16 +78,16 @@ public class SetUtilTest {
HashSet<String> set1 = SetUtil.newHashSet("1", "2", "3", "6");
HashSet<String> set2 = SetUtil.newHashSet("4", "5", "6", "7");
Set<String> set3 = SetUtil.union(set1, set2);
Set<String> set3 = SetUtil.unionView(set1, set2);
assertThat(set3).hasSize(7).contains("1", "2", "3", "4", "5", "6", "7");
Set<String> set4 = SetUtil.intersection(set1, set2);
Set<String> set4 = SetUtil.intersectionView(set1, set2);
assertThat(set4).hasSize(1).contains("6");
Set<String> set5 = SetUtil.difference(set1, set2);
Set<String> set5 = SetUtil.differenceView(set1, set2);
assertThat(set5).hasSize(3).contains("1", "2", "3");
Set<String> set6 = SetUtil.disjoint(set1, set2);
Set<String> set6 = SetUtil.disjointView(set1, set2);
assertThat(set6).hasSize(6).contains("1", "2", "3", "4", "5", "7");
try {
@@ -3,8 +3,9 @@ package org.springside.modules.utils.misc;
import static org.assertj.core.api.Assertions.*;
import org.junit.Test;
import org.springside.modules.utils.misc.Sampler.AlwaysSampler;
import org.springside.modules.utils.misc.Sampler.NeverSampler;
import org.springside.modules.utils.concurrent.throttle.Sampler;
import org.springside.modules.utils.concurrent.throttle.Sampler.AlwaysSampler;
import org.springside.modules.utils.concurrent.throttle.Sampler.NeverSampler;
public class SamplerTest {