I'm working with a shapefile having about 85.000 features. I need to select some of these using a filter and then showing these on a map.
Now... If I draw the entire shapefile's features the creation of the map, the zooming and moving around is fast but if I select, even only 100, features from the SimpleFeatureSource, these steps are really slow.
Here is how I select, for example, the first 1000 features and then draw:

The execution stuks at Layer layer = new FeatureLayer (features, style);

and at  JMapFrame.showMap(map);


 `	public static void main(String[] args) {
		File file = JFileDataStoreChooser.showOpenFile("shp", null);
		 if (file == null) return;
try{
					
	        FileDataStore store = FileDataStoreFinder.getDataStore(file);
	        SimpleFeatureSource featureSource = store.getFeatureSource();
	          
	        FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2();
		    
	        String[] selection = new String[1000];
	        
	        for(int i=0; i<selection.length; i++){
	        	
	        	selection[i] = i+"";
	        	
	        }
	        
	        ArrayList<Filter> match = new ArrayList<Filter>();

	        for (String name : selection) {
	            Filter aMatch = ff.equal(ff.property("ID"), ff.literal(name), false);
	            match.add(aMatch);
	        }
	        Filter filter = ff.or(match);
	        
	        SimpleFeatureCollection features = featureSource.getFeatures(filter);
	        
	 
	        
	        // Create a map content and add our shapefile to it
	        MapContent map = new MapContent();
	        map.setTitle("Quickstart");
	        
	        
	        Style style = SLD.createSimpleStyle(features.getSchema());
	       

	        Layer layer = new FeatureLayer(features, style);

	        map.addLayer(layer);

	        // Now display the map
	        JMapFrame.showMap(map);
	        
	        }catch (Exception e)
	        {
	        	e.printStackTrace();
}` 

Are there some faster way to do this?