当前位置:编程学堂 > 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}
*/ -->

相关文章