测试
package test.java.com.kaishengit.service.impl;
import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.collect.*;
import org.apache.commons.lang.StringUtils;
import org.joda.time.DateTime;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.SortedSet;
/**
* Created by Wgs on 2017/10/11.
*/
public class MapTest {
@Test
public void test() {
String authCode = "21234654332243";
String[] strings = new String[]{"25", "26", "27"};
if (StringUtils.startsWithAny(authCode, strings) && authCode.length() >= 16) {
System.out.println("success");
}
System.out.println(authCode.length());
}
@Test
public void time() {
System.out.println(DateTime.now().toString("yyyy-MM-dd"));
System.out.println(new Date());
// 获取当前周的周一和周末
System.out.println(String.format("min:%s, max:%s", DateTime.now().dayOfWeek().withMinimumValue().toString("yyyy-MM-dd"),
DateTime.now().dayOfWeek().withMaximumValue().toString("yyyy-MM-dd")));
}
@Test
public void week() {
//DateTime now = new DateTime("2017-03-15");
DateTime now = DateTime.now();
String start = now.dayOfWeek().withMinimumValue().toString("yyyy-MM-dd");
String end = now.dayOfWeek().withMaximumValue().toString("yyyy-MM-dd");
System.out.println(end);
System.out.println(start);
//星期
int week = now.getDayOfWeek();
System.out.println(week);
String string_c = now.toString("MM", Locale.CHINESE);
System.out.println(string_c);
String moth = now.monthOfYear().getAsText(Locale.CHINESE);
System.out.println(moth);
}
@Test
public void moth() {
DateTime now = DateTime.now();
System.out.println(now.dayOfMonth().withMinimumValue().toString("yyyy-MM-dd"));
System.out.println(now.dayOfMonth().withMaximumValue().toString("dd"));
}
@Test
public void year() {
DateTime now = DateTime.now();
System.out.println(now.monthOfYear().withMinimumValue().toString("yyyy-MM"));
System.out.println(now.monthOfYear().withMaximumValue().toString("yyyy-MM"));
}
@Test
public void weeks() {
//DateTime now = new DateTime("2017-03-15");
DateTime now = DateTime.now();
String start = now.dayOfWeek().withMinimumValue().toString("yyyy-MM-dd");
String end = now.dayOfWeek().withMaximumValue().toString("yyyy-MM-dd");
System.out.println(end);
System.out.println(start);
//星期
// int week = now.getDayOfWeek();
// System.out.println(week);
// String string_c = now.toString("MM", Locale.CHINESE);
// System.out.println(string_c);
// String moth = now .monthOfYear().getAsText(Locale.CHINESE);
// System.out.println(moth);
}
@Test
public void weeknull() {
String tiem = "11";
if (StringUtils.isBlank(tiem)) {
System.out.println("111");
}
// if (StringUtils)
//DateTime now = new DateTime("2017-03-15");
DateTime now = DateTime.now();
String start = now.dayOfMonth().withMinimumValue().toString("yyyy-MM-dd");
String end = now.dayOfMonth().withMaximumValue().toString("yyyy-MM-dd");
System.out.println(end);
System.out.println(start);
System.out.println(now.toString("EE", Locale.CHINESE));
}
/**
* guava List交集
*/
@Test
public void eq() {
// x轴数据是固定的
List<String> listOld = Lists.newArrayList("周一", "周二", "周三", "周四", "周五", "周六", "周日");
// 把周二插到指定位置
List<String> newList = Lists.newArrayList("周一", "周三", "周四", "周五", "周六", "周日");
List<String> guava = getDifferenceSetByGuava(listOld, newList);
for (String result : guava) {
System.out.println(result);
}
}
@Test
public void eqs() {
List<String> listOld = Lists.newArrayList("0:00", "3:00", "4:00", "5:00");
List<String> newList = Lists.newArrayList("6:00", "3:00", "1:00");
newList.removeAll(listOld);
listOld.addAll(newList);
Collections.sort(listOld);
for (String result : listOld) {
System.out.println(result);
}
}
@Test
public void b() {
List list1 = new ArrayList();
list1.add("1111");
list1.add("2222");
list1.add("3333");
List list2 = new ArrayList();
list2.add("3333");
list2.add("4444");
list2.add("5555");
//并集
//list1.addAll(list2);
//交集
//list1.retainAll(list2);
//差集
list1.removeAll(list2);
//无重复并集
list2.removeAll(list1);
list1.addAll(list2);
Iterator<String> it = list1.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
//System.out.println("-----------------------------------\n");
//printStr(list1);
}
public static void printStr(List list1) {
for (int i = 0; i < list1.size(); i++) {
System.out.println(list1.get(i));
}
}
@Test
public void c() {
Multiset<String> multiSet = HashMultiset.create();
multiSet.add("chen");
multiSet.add("chen");
multiSet.add("xing");
for (String s : multiSet) {
System.out.println(s);
}
Multimap<String, String> multiMap = HashMultimap.create();
multiMap.put("chen", "11");
multiMap.put("chen", "22");
for (Map.Entry<String, String> entry : multiMap.entries()) {
System.out.println("key:" + entry.getKey() + " value:" + entry.getValue());
}
}
@Test
public void guavat() {
ImmutableMap<String, Integer> oneMap = ImmutableMap.of("key1", 1, "key2", 2);
ImmutableMap<String, Integer> twoMap = ImmutableMap.of("key11", 11, "key2", 2);
MapDifference<String, Integer> diffHadle = Maps.difference(oneMap, twoMap);
Map<String, Integer> commonMap = diffHadle.entriesInCommon();//{"key2",2},若无共同Entry,则返回长度为0的Map
Map<String, Integer> diffOnLeft = diffHadle.entriesOnlyOnLeft();//返回左边的Map中不同或者特有的元素
Map<String, Integer> diffOnRight = diffHadle.entriesOnlyOnRight();//返回右边的Map中不同或者特有的元素
for (Map.Entry<String, Integer> entry : diffOnRight.entrySet()) {
System.out.println("共同Map中key:" + entry.getKey() + " value:" + entry.getValue());
}
}
@Test
public void gavaTe() {
List<String> big = Lists.newArrayList("1", "2", "3", "4", "5", "6", "7", "8", "9");
List<String> small = Lists.newArrayList("1", "2", "3", "3", "2", "1");
long a = System.currentTimeMillis();
List<String> guava = getDifferenceSetByGuava(big, small);
System.out.println("\r<br> 执行耗时 : " + (System.currentTimeMillis() - a) / 1000f + " 秒 ");
//为了显示一致,我给集合排个序,因为guava是按newHashSet集合来整的,newHashSet又是无序的,so ...
Collections.sort(guava);
a = System.currentTimeMillis();
List<String> my = getDifferenceSetByMyself(big, small);
System.out.println("\r<br> 执行耗时 : " + (System.currentTimeMillis() - a) / 1000f + " 秒 ");
System.out.println("guava:" + guava.toString());
System.out.println(my.toString());
Map<String, String> bigMap = Maps.newHashMap();
bigMap.put("1", "1");
bigMap.put("2", "2");
bigMap.put("3", "3");
bigMap.put("4", "4");
Map<String, String> smallMap = Maps.newHashMap();
smallMap.put("1", "1");
smallMap.put("2", "9");
smallMap.put("5", "5");
a = System.currentTimeMillis();
Map<String, String> guavaMap = getDifferenceSetByGuava(bigMap, smallMap);
System.out.println("\r<br> 执行耗时 : " + (System.currentTimeMillis() - a) / 1000f + " 秒 ");
System.out.println(guavaMap);
}
/**
* 使用guava工具类来取List集合的差集--专业轮子谷歌造
*
* @param big 大集合
* @param small 小集合
* @return 两个集合的差集
*/
private static List<String> getDifferenceSetByGuava(List<String> big, List<String> small) {
Set<String> differenceSet = Sets.difference(Sets.newHashSet(big), Sets.newHashSet(small));
return Lists.newArrayList(differenceSet);
}
/**
* 自己实现取List集合的差集--自制轮子大师兄造
*
* @param big 大集合
* @param small 小集合
* @return 两个集合的差集
*/
private static List<String> getDifferenceSetByMyself(List<String> big, List<String> small) {
Set<String> sameString = Sets.newHashSet();
for (String s : small) {
sameString.add(s);
}
List<String> result = Lists.newArrayList();
for (String s : big) {
if (sameString.add(s)) {
result.add(s);
}
}
return result;
}
/**
* 自己实现取Map集合的差集--站在巨人的肩膀上造轮子
*
* @param bigMap 大集合
* @param smallMap 小集合
* @return 两个集合的差集
*/
private static Map<String, String> getDifferenceSetByGuava(Map<String, String> bigMap, Map<String, String> smallMap) {
Set<String> bigMapKey = bigMap.keySet();
Set<String> smallMapKey = smallMap.keySet();
Set<String> differenceSet = Sets.difference(bigMapKey, smallMapKey);
Map<String, String> result = Maps.newHashMap();
for (String key : differenceSet) {
result.put(key, bigMap.get(key));
}
return result;
}
@Test
public void testMap() {
List<Person> persons = Lists.newArrayList(
new Person("zhang", 15),
new Person("wang", 15),
new Person("lee", 18)
);
Map<String, Person> map = Maps.uniqueIndex(persons, new Function<Person, String>() {
public String apply(Person person) {
return person.getName();
}
});
map = Maps.filterValues(map, new Predicate<Person>() {
@Override
public boolean apply(Person person) {
return person != null && person.getAge() > 15;
}
});
for (Map.Entry<String, Person> entry : map.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
@Test
public void convent() {
Map map1 = Maps.newHashMap();
map1.put("a", 1);
map1.put("b", 2);
map1.put("c", 3);
map1.put("d", 4);
Map<String, Integer> map2 = Maps.newHashMap();
map2.put("a", 1);
map2.put("b", 2);
Map<String, Integer> result = Maps.filterKeys(map2, new Predicate<String>() {
@Override
public boolean apply(String s) {
return s.equals("a");
}
});
for (String st : result.keySet()) {
System.out.println("key:" + st + "value:" + result.get(st));
}
}
@Test
public void tests(){
List list = new ArrayList();
Map map = new HashMap();
}
}