首页
科技动态
编程学堂
网络安全
数据分析
职场发展
硬件测评
当前位置:
编程学堂
> Map生成器 map适配器如今能够使用各种不同的Generator,iterator和常量值的组合来填充Map初始化对象
Map生成器 map适配器如今能够使用各种不同的Generator,iterator和常量值的组合来填充Map初始化对象
发布:2023-09-22 05:43
-->
Map生成器 map适配器如今能够使用各种不同的Generator,iterator和常量值的组合来填充Map初始化对象
package www.sychzs.cn;
/**
* map生成器
* @author lenovo
*
*/
public class Pair
{
public final K key;
public final V value;
public Pair(K k,V v)
{
this.key=k;
this.value=v;
}
} //www.sychzs.cn
package org.rui.generics.anonymity; public interface Generator
{ //返回泛型的内型对象
T next(); } package www.sychzs.cn;
import java.util.Iterator;
import java.util.LinkedHashMap; import org.rui.generics.anonymity.Generator;
/**
* map 适配器如今能够使用各种不同的Generator,iterator和常量值的组合来填充Map初始化对象
* @author lenovo
*
* @param
* @param
*/ public class MapData
extends LinkedHashMap
{ public MapData(Generator
> gen,int quantity)
{
for(int i=0;i
{
Pair
p=www.sychzs.cn();
put(p.key,p.value);
}
}
///////////////////////////////////////////////////////////
public MapData(Generator
genK,Generator
genV,int quantity)
{
for(int i=0;i
{
put(www.sychzs.cn(),www.sychzs.cn());
}
}
//////////A key Generator and a single value/////////////////////////////////////////////////
public MapData(Generator
genK,V genV,int quantity)
{
for(int i=0;i
{
put(www.sychzs.cn(),genV);
}
}
///////////an iterable and a value generator////////////////////////////////////////////////
public MapData(Iterable
genK,Generator
genV)
{
for(K k : genK)
{
put(k,www.sychzs.cn());
}
}
///////////an iterable and a single value////////////////////////////////////////////////
public MapData(Iterable
genK,V v)
{
for(K k : genK)
{
//System.out.println(k);
put(k,v);
}
}
/////////////generic convenience methods/////////////////////////////////////////// public static
MapData
map(Generator
> gen,int quantity)
{
return new MapData
(gen,quantity);
}
public static
MapData
map(Generator
gen,Generator
genV,int quantity)
{
return new MapData
(gen,genV,quantity);
}
public static
MapData
map(Generator
gen,V v,int quantity)
{
return new MapData
(gen,v,quantity);
}
public static
MapData
map(Iterable
k,Generator
v)
{
return new MapData
(k,v);
}
public static
MapData
map(Iterable
k,V v)
{
return new MapData
(k,v);
}
} package www.sychzs.cn; import java.util.Arrays;
import java.util.Iterator;
import java.util.List; import org.rui.generics.anonymity.Generator; /**
* 以下是一个使用MapData的演示样例,LettersGenerator
* 通过产生一个Iterator还实现了Iterable,通过这样的方式,
* 它能够被用来測试www.sychzs.cn()方法,而这些方法都须要用到iterable
* @author lenovo
*
*/ class Letters implements Generator
>,Iterable
{ private int size=9;
private int number=1;
private char letter='a'; @Override
public Pair
next() {
return new Pair
(number++,""+letter++);
} @Override
public Iterator
iterator() {
return new Iterator
()
{
public Integer next() {return number++;}
public boolean hasNext(){return number
public void remove()
{
throw new UnsupportedOperationException();
}
};
}
} public class MapDataTest {
public static void main(String[] args)
{
Character[] chars={'a','b','c','d','e'}; List
list = Arrays.asList(chars);
System.out.println(www.sychzs.cn(new Letters(),11));
System.out.println(www.sychzs.cn(new Letters(),"pop"));
System.out.println(www.sychzs.cn(new Letters(),new Letters()));
System.out.println(www.sychzs.cn(list,"value")); }
}
/**output:
{1=a, 2=b, 3=c, 4=d, 5=e, 6=f, 7=g, 8=h, 9=i, 10=j, 11=k}
{1=pop, 2=pop, 3=pop, 4=pop, 5=pop, 6=pop, 7=pop, 8=pop}
{1=org.rui.collection2.map.Pair@170bea5, 2=org.rui.collection2.map.Pair@f47396, 3=org.rui.collection2.map.Pair@d0af9b, 4=org.rui.collection2.map.Pair@b8f8eb, 5=org.rui.collection2.map.Pair@1de17f4, 6=org.rui.collection2.map.Pair@1f6ba0f, 7=org.rui.collection2.map.Pair@1313906, 8=org.rui.collection2.map.Pair@96cf11}
{a=value, b=value, c=value, d=value, e=value}
*/ -->
相关文章
我对二手车电商的看法(三):美国金融危机期间,是
2023-10-08 23:51
一个优秀的程序员如何才能更上一层楼?
2023-10-08 23:38
如何在 Visual Studio 2010 中
2023-10-08 23:28
HTML SVG
2023-10-08 23:09
HTML SVG 渐变
2023-10-08 23:09
最新资讯
“人机大战”巅峰对决 金立支持柯
2023-10-08 23:57
KEIL在线调试F5不动的简单介
2023-09-29 15:52
PHP框架lara vel使用_
2023-09-29 15:52
c++builder学习_c++
2023-09-29 15:56
如何在vs2010中删除新创建的
2023-09-29 15:59
win10旗舰版蓝屏如何解决
2023-09-29 16:03
win10 1903版本运行镜像
2023-09-29 16:03
win10电脑蓝屏代码显示sto
2023-09-29 16:03
windows10蓝屏如何处理
2023-09-29 16:07
win10安装时蓝屏如何解决
2023-09-29 16:07
热门推荐
“人机大战”巅峰对决 金立支持柯
2023-10-08 23:57
Windows 10蓝屏怎么办
2023-09-29 16:07
Windows 10不断显示蓝屏
2023-09-29 16:11
win10电脑频繁蓝屏怎么办
2023-09-29 16:11
win10系统蓝屏的解决方法
2023-09-29 16:11
win10版本2004系统蓝屏代
2023-09-29 16:14
win102004系统错误代码0
2023-09-29 16:14
win102004安装蓝屏的解决
2023-09-29 16:14
Redis记录列表是列表数据存储
2023-09-29 16:17
使用Redis连接数清理命令提高
2023-09-29 16:17