The basic algorithm for this is:
- read in districts
- read in counties
- foreach district in districts
- split district by counties
- calculate area as % of original
GeoTools (and JTS) are able to take care of all of these steps for you, the quickstart tutorial will have shown you how to read in your shapefiles. The query tutorial will get you up to speed on FeatureCollections and filters.
To split a feature's geometry you will need to use JTS which GeoTools wraps for you as Geometry Operations.
Your inner loop will look something like (untested code):
Filter filter = CQL.toFilter("INTERSECTS(the_geom,"+district.toWKT()+")");
SimpleFeatureCollection features = counties.getFeatures(filter);
SimpleFeatureIterator it = features.features();
while(it.hasNext()){
SimpleFeature next = (SimpleFeature)it.next();
Geometry overlap = district.intersection(next.getDefaultGeometry());
double area = overlap.getArea();
}
I've knocked up a full example too.