比较时间大小
Joda-Time 操作常用时间函数
Joda-Time 简介(引用) / 例子Example(自己)/ 官网例子
Java日期计算之Joda-Time
JodaTime开源时间/日期库
测试
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 listOld = Lists.newArrayList("周一", "周二", "周三", "周四", "周五", "周六", "周日");
// 把周二插到指定位置
List newList = Lists.newArrayList("周一", "周三", "周四", "周五", "周六", "周日");
List guava = getDifferenceSetByGuava(listOld, newList);
for (String result : guava) {
System.out.println(result);
}
}
@Test
public void eqs() {
List listOld = Lists.newArrayList("0:00", "3:00", "4:00", "5:00");
List 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 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 multiSet = HashMultiset.create();
multiSet.add("chen");
multiSet.add("chen");
multiSet.add("xing");
for (String s : multiSet) {
System.out.println(s);
}
Multimap multiMap = HashMultimap.create();
multiMap.put("chen", "11");
multiMap.put("chen", "22");
for (Map.Entry entry : multiMap.entries()) {
System.out.println("key:" + entry.getKey() + " value:" + entry.getValue());
}
}
@Test
public void guavat() {
ImmutableMap oneMap = ImmutableMap.of("key1", 1, "key2", 2);
ImmutableMap twoMap = ImmutableMap.of("key11", 11, "key2", 2);
MapDifference diffHadle = Maps.difference(oneMap, twoMap);
Map commonMap = diffHadle.entriesInCommon();//{"key2",2},若无共同Entry,则返回长度为0的Map
Map diffOnLeft = diffHadle.entriesOnlyOnLeft();//返回左边的Map中不同或者特有的元素
Map diffOnRight = diffHadle.entriesOnlyOnRight();//返回右边的Map中不同或者特有的元素
for (Map.Entry entry : diffOnRight.entrySet()) {
System.out.println("共同Map中key:" + entry.getKey() + " value:" + entry.getValue());
}
}
@Test
public void gavaTe() {
List big = Lists.newArrayList("1", "2", "3", "4", "5", "6", "7", "8", "9");
List small = Lists.newArrayList("1", "2", "3", "3", "2", "1");
long a = System.currentTimeMillis();
List guava = getDifferenceSetByGuava(big, small);
System.out.println("\r
执行耗时 : " + (System.currentTimeMillis() - a) / 1000f + " 秒 ");
//为了显示一致,我给集合排个序,因为guava是按newHashSet集合来整的,newHashSet又是无序的,so ...
Collections.sort(guava);
a = System.currentTimeMillis();
List my = getDifferenceSetByMyself(big, small);
System.out.println("\r
执行耗时 : " + (System.currentTimeMillis() - a) / 1000f + " 秒 ");
System.out.println("guava:" + guava.toString());
System.out.println(my.toString());
Map bigMap = Maps.newHashMap();
bigMap.put("1", "1");
bigMap.put("2", "2");
bigMap.put("3", "3");
bigMap.put("4", "4");
Map smallMap = Maps.newHashMap();
smallMap.put("1", "1");
smallMap.put("2", "9");
smallMap.put("5", "5");
a = System.currentTimeMillis();
Map guavaMap = getDifferenceSetByGuava(bigMap, smallMap);
System.out.println("\r
执行耗时 : " + (System.currentTimeMillis() - a) / 1000f + " 秒 ");
System.out.println(guavaMap);
}
/**
* 使用guava工具类来取List集合的差集--专业轮子谷歌造
*
* @param big 大集合
* @param small 小集合
* @return 两个集合的差集
*/
private static List getDifferenceSetByGuava(List big, List small) {
Set differenceSet = Sets.difference(Sets.newHashSet(big), Sets.newHashSet(small));
return Lists.newArrayList(differenceSet);
}
/**
* 自己实现取List集合的差集--自制轮子大师兄造
*
* @param big 大集合
* @param small 小集合
* @return 两个集合的差集
*/
private static List getDifferenceSetByMyself(List big, List small) {
Set sameString = Sets.newHashSet();
for (String s : small) {
sameString.add(s);
}
List 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 getDifferenceSetByGuava(Map bigMap, Map smallMap) {
Set bigMapKey = bigMap.keySet();
Set smallMapKey = smallMap.keySet();
Set differenceSet = Sets.difference(bigMapKey, smallMapKey);
Map result = Maps.newHashMap();
for (String key : differenceSet) {
result.put(key, bigMap.get(key));
}
return result;
}
@Test
public void testMap() {
List persons = Lists.newArrayList(
new Person("zhang", 15),
new Person("wang", 15),
new Person("lee", 18)
);
Map map = Maps.uniqueIndex(persons, new Function() {
public String apply(Person person) {
return person.getName();
}
});
map = Maps.filterValues(map, new Predicate() {
@Override
public boolean apply(Person person) {
return person != null && person.getAge() > 15;
}
});
for (Map.Entry 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 map2 = Maps.newHashMap();
map2.put("a", 1);
map2.put("b", 2);
Map result = Maps.filterKeys(map2, new Predicate() {
@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();
}
}