В общем, идея праильная. 
 
Вариант. 
Читаем файл и перекодируем его в вид: 
<Bi - {Am,An,...}> 
Т.е. Map с ключем B и заначением в виде списка A. 
 
Т.о, получаем практически мгновенный поиск по B (за счет внутреннего механизма Map). 
 
Ну и сохранять можно точно так же. 
 
Но в этом случае поиск по A будет практически невозможным. 
		
	
		
		
		
		
		
	
		
		
	
	
	 |