我有这段丑陋的代码:
for (int i = 1; i <= 1100; i++) {
if (i<=SpbAndRegionPerSession){
submit(new SiteRequest(SpbAndRegion + i, SiteRequestType.SEARCH_PAGE));
}
if (i<=KrasnodarRegionPerSession){
//stuff
}
if (i<=NovosibRegionPerSession){
//stuff
}
if (i<=RostovRegionPerSession){
//stuff
}
if (i<=TatarstanPerSession){
//stuff
}
if (i<=MoscowAndRegionPerSession){
//stuff
}
}
我想缩短它。在JS中我会这样做:
var regions = [{perSession:500,link:'somehref.com/page='}];
for (var i=0;i<regions.length;i++){
for (var n;n<regeions[i].perSession;n++){
submit(SiteRequest(regeions[i].link + i, SEARCH_PAGE));
}
}
我怎么能用Java做到这一点?我是新手。
答案 0 :(得分:2)
private static final String SEARCH_PAGE = "some search page link here";
public class Region {
private final int perSession;
private final String link;
public Region(int perSession, String link) {
this.perSession = perSession;
this.link = link;
}
// getters here
}
List<Region> regions = new ArrayList<Region>();
regions.add(new Region(500, "somehref.com/page="));
for(Region region : regions) {
for(int i = 0; i < region.getPerSession(); i++) {
submit(new SiteRequest(region.getLink() + i, SEARCH_PAGE));
}
}
答案 1 :(得分:-1)
试试这段代码,
int regions[] = {SpbAndRegionPerSession, KrasnodarRegionPerSession,
NovosibRegionPerSession, RostovRegionPerSession,
TatarstanPerSession, MoscowAndRegionPerSession};
for (int i = 1; i <= 1100; i++) {
for (int j = 0; j < regions.length; j++) {
if(i<=j)
submit(new SiteRequest(regions[j] + i, SiteRequestType.SEARCH_PAGE));
}
}
答案 2 :(得分:-1)
你可以这样使用更专业;
public class Dvo
{
public Dvo(int perSession, String link) {
super();
this.setLink(link);
this.setPerSession(perSession);
}
public int getPerSession() {
return perSession;
}
public void setPerSession(int perSession) {
this.perSession = perSession;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
private String link = null;
private int perSession;
}
public static void main(String[] args) {
Object[] veri = new Object[]{new Dvo(500,"somehref.com/page="),new Dvo(300,"blabla.com/page=")};
for (int i=0;i<veri.length;i++){
Dvo a = (Dvo) veri[i];
for (int j = 0; j < a.getPerSession(); j++) {
submit(SiteRequest(a.getLink() + i, SEARCH_PAGE));
}
}
}