import java.util.*;class  CharGenerator 
{
private static char[] chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
private static Random rand=new Random();
public static char next()
{
return chars[rand.nextInt(chars.length)];
}
}
public class StringGenerator
{
private int len;
public static StringGenerator gen=new StringGenerator(5);
public StringGenerator(int len){this.len=len;}
private String next()
{
char[] buffer=new char[len];
for(int i=0;i<len;i++)
buffer[i]=CharGenerator.next();
return new String(buffer);
}
public static void fill(String[] strs,StringGenerator gen,int len)
{
int i=0;
while(i++<len-1){strs[i]=gen.next();}
}
public static void main(String[] args)
{
StringGenerator sg=new StringGenerator(10);
//for(int i=0;i<10;i++)
//System.out.println(sg.next());
String[] strs=new String[12];
fill(strs,gen,strs.length);
//System.out.println(Arrays.asList(strs));
}
}最后检查map的size发现为零,问题在哪啊?

解决方案 »

  1.   

    map?没看到呀,在哪里?
    你把结果打印一下,估计你就可以找到问题了
      

  2.   

    没看明白你题目,
    不过看到你代码有点问题改了下
    while(i<len){strs[i++]=gen.next();}
      

  3.   

    回楼上  问题应该是出在public 类中的
      

  4.   

    运行结果
    HnnopFNjzL
    UXpJqfQexz
    TRdMxmyXjR
    bODnHdlCpO
    oobfMgbvnT
    HcfGDwNxVh
    EZFrkLjBZJ
    TvjSvioiQz
    rwqvUjGgRA
    PgMuNCyJvH
    [null, NdXTh, bwOGC, jGlYk, NkYsV, ZYcMP, zhriV, vXVst, StPSg, ziyOn, oeBRp, vDqIL]你说的是第一个为NULL???
    这里嘛??
      

  5.   

    这个错误就是while(i<len){strs[i++]=gen.next();}这么解决
    楼上的正确
      

  6.   

    晕 贴错了
    import java.util.*;class  CharGenerator 
    {
    private static char[] chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
    private static Random rand=new Random();
    public static char next()
    {
    return chars[rand.nextInt(chars.length)];
    }
    }
    class Pair
    {
    public String key,value;
    public Pair(String key,String value)
    {this.key=key;this.value=value;}
    }
    class StringGenerator
    {
    private int len;
    public static StringGenerator gen=new StringGenerator(10);
    public StringGenerator(int len){this.len=len;}
    public  String next()
    {
    char[] buffer=new char[len];
    for(int i=0;i<len;i++)
    buffer[i]=CharGenerator.next();
    return new String(buffer);
    }
    public static void fill(String[] strs,StringGenerator gen,int len)
    {
    int i=0;
    while(i<len-1){strs[i++]=gen.next();}
    }
    }
    public class MapGenerator
    {
    public static MapGenerator gen=new MapGenerator();
    public static void fill(Map m,int len)
    {
    StringGenerator sg=new StringGenerator(12);
    for(int i=0;i<len;i++)
    m.put(sg.next(),sg.next());
    }
    public static void main(String[] args)
    {
    Map m=new HashMap(11);
    fill(m,m.size());
    //System.out.println(m.size());
    }
    }
      

  7.   

    算你狠 贴下api
    HashMap(int initialCapacity) 
     Constructs an empty HashMap with the specified initial capacity and the default load factor (0.75).
      

  8.   

    不懂楼上兄台的意思,我觉得问题在于,没有把自动产生的string加入到map中。
    但我不知道是什么原因
      

  9.   

    fill(m,m.size());
           ********
      

  10.   

    支持楼上兄弟!
    fill(m,m.size());
    m.size()==0,楼主还想有什么结果!!!