介绍完了List
,我怕们继续来看commons-collections中为我们提供的Map
相关的实现类。
CaseInsensitiveMap
CaseInsensitiveMap
是一个对键的大小写不敏感的Map,在将键添加或与其它键比较之前,会将其转换为小写字符串。
使用示例:
package com.gujin.collections;
import org.apache.commons.collections.map.CaseInsensitiveMap;
import org.junit.Test;
public class CaseInsensitiveMapTest
{
@Test
public void test()
{
CaseInsensitiveMap caseInsensitiveMap = new CaseInsensitiveMap();
caseInsensitiveMap.put("name", "jianggujin");
caseInsensitiveMap.put("NAME", "jianggujin");
System.out.println(caseInsensitiveMap);
System.out.println(caseInsensitiveMap.get("nAme"));
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
运行结果:
{name=jianggujin}
jianggujin
CompositeMap
CompositeMap
修饰另一个Map。添加和移除操作使用可插拔的策略,如果没有提供策略,添加和删除是不支持的。
使用示例:
package com.gujin.collections;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.collections.map.CompositeMap;
import org.apache.commons.collections.map.CompositeMap.MapMutator;
import org.junit.Test;
public class CompositeMapTest
{
@Test
public void test()
{
CompositeMap compositeMap = new CompositeMap();
compositeMap.addComposited(new HashMap<String, String>());
MapMutator mapMutator1 = new MapMutator()
{
@Override
public void resolveCollision(CompositeMap composite, Map existing,
Map added, Collection intersect)
{
}
@Override
public void putAll(CompositeMap map, Map[] composited, Map mapToAdd)
{
}
@Override
public Object put(CompositeMap map, Map[] composited, Object key,
Object value)
{
return composited[0].put(key, value);
}
};
MapMutator mapMutator2 = new MapMutator()
{
@Override
public void resolveCollision(CompositeMap composite, Map existing,
Map added, Collection intersect)
{
}
@Override
public void putAll(CompositeMap map, Map[] composited, Map mapToAdd)
{
}
@Override
public Object put(CompositeMap map, Map[] composited, Object key,
Object value)
{
return composited[0].put(key.toString().toUpperCase(), value);
}
};
compositeMap.setMutator(mapMutator1);
compositeMap.put("name", "jianggujin");
compositeMap.setMutator(mapMutator2);
compositeMap.put("name", "JIANGGUJIN");
System.out.println(compositeMap.get("name"));
System.out.println(compositeMap.get("NAME"));
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15