此函数返回描述映射 -> 标题列表。您不能拥有列表大小的映射 -> 标题列表,因为您可能有多个具有相同长度的列表,并且您只能拥有一个具有给定键的映射条目。
public static Map<String, List<Heading>> sameDescs( List<Heading> input )
{
Map<String, List<Heading>> ret = new HashMap<String, List<Heading>>();
for( Heading heading : input )
{
if( ! ret.containsKey( heading.getDescription() ) )
{
ret.put( heading.getDescription(), new ArrayList<Heading>() );
}
ret.get( heading.getDescription() ).add( heading );
}
return ret;
}
您可以像这样打印列表的大小:
public static void main( String[] args ) {
List<Heading> myList = new ArrayList<Heading>();
myList.add( new Heading( "desc1" ) );
myList.add( new Heading( "desc2" ) );
myList.add( new Heading( "desc1" ) );
Map<String, List<Heading>> result = sameDescs( myList );
for( Map.Entry<String, List<Heading>> e : result.entrySet() ) {
System.out.println( e.getKey() + ":" + e.getValue().size() );
}
}
产生这样的输出:
desc1:2
desc2:1