一共三个类
自己写的
public class ch17Test2 {
public static Countries c = new Countries();
public static void main(String[] args){
long start = System.currentTimeMillis();
Map<String,String> hm = new HashMap<String,String>(c.capitals(c.DATA.length));
Map<String,String> hm2 = new HashMap<String,String>();
Set<String> hs = new HashSet<String>();
for(Map.Entry<String, String> eny: hm.entrySet()){
String key = eny.getKey();
if(key.substring(0,1).equals("A")){
hm2.put(key, eny.getValue());
hs.add(key);
}
}
long end = System.currentTimeMillis();
System.out.println(end - start);
System.out.println(hm2);
System.out.println(hs);
}
}自带的答案
public class Test2 {
public static void main(String[] args) {
long start = System.currentTimeMillis();
Map<String,String> hm = new HashMap<String,String>();
Set<String> hs = hm.keySet();
Pattern p = Pattern.compile("A[a-zA-Z]*");
for(int i = 0; i < Countries.DATA.length; i++) {
if(p.matcher(Countries.DATA[i][0]).matches())
hm.put(Countries.DATA[i][0], Countries.DATA[i][1]);
}
long end = System.currentTimeMillis();
System.out.println(end - start);
System.out.println(hm);
System.out.println(hs);
}
}基中我都为其加入了System.currentTimeMillis();来测试运行的时间.结果相同.
我的程序的结果 end - start: 0
而自带的结果 end - start: 15
我想问下,为什么速度上会相差那么大!是出在正则吗?
自己写的
public class ch17Test2 {
public static Countries c = new Countries();
public static void main(String[] args){
long start = System.currentTimeMillis();
Map<String,String> hm = new HashMap<String,String>(c.capitals(c.DATA.length));
Map<String,String> hm2 = new HashMap<String,String>();
Set<String> hs = new HashSet<String>();
for(Map.Entry<String, String> eny: hm.entrySet()){
String key = eny.getKey();
if(key.substring(0,1).equals("A")){
hm2.put(key, eny.getValue());
hs.add(key);
}
}
long end = System.currentTimeMillis();
System.out.println(end - start);
System.out.println(hm2);
System.out.println(hs);
}
}自带的答案
public class Test2 {
public static void main(String[] args) {
long start = System.currentTimeMillis();
Map<String,String> hm = new HashMap<String,String>();
Set<String> hs = hm.keySet();
Pattern p = Pattern.compile("A[a-zA-Z]*");
for(int i = 0; i < Countries.DATA.length; i++) {
if(p.matcher(Countries.DATA[i][0]).matches())
hm.put(Countries.DATA[i][0], Countries.DATA[i][1]);
}
long end = System.currentTimeMillis();
System.out.println(end - start);
System.out.println(hm);
System.out.println(hs);
}
}基中我都为其加入了System.currentTimeMillis();来测试运行的时间.结果相同.
我的程序的结果 end - start: 0
而自带的结果 end - start: 15
我想问下,为什么速度上会相差那么大!是出在正则吗?
// Africa
{ "ALGERIA", "Algiers" },
{ "ANGOLA", "Luanda" },
{ "BENIN", "Porto-Novo" },
{ "BOTSWANA", "Gaberone" },
{ "BURKINA FASO", "Ouagadougou" },
{ "BURUNDI", "Bujumbura" },
{ "CAMEROON", "Yaounde" },
{ "CAPE VERDE", "Praia" },
{ "CENTRAL AFRICAN REPUBLIC", "Bangui" },
{ "CHAD", "N'djamena" },
{ "COMOROS", "Moroni" },
{ "CONGO", "Brazzaville" },
{ "DJIBOUTI", "Dijibouti" },
{ "EGYPT", "Cairo" },
{ "EQUATORIAL GUINEA", "Malabo" },
{ "ERITREA", "Asmara" },
{ "ETHIOPIA", "Addis Ababa" },
{ "GABON", "Libreville" },
{ "THE GAMBIA", "Banjul" },
{ "GHANA", "Accra" },
{ "GUINEA", "Conakry" },
{ "BISSAU", "Bissau" },
{ "COTE D'IVOIR (IVORY COAST)", "Yamoussoukro" },
{ "KENYA", "Nairobi" },
{ "LESOTHO", "Maseru" },
{ "LIBERIA", "Monrovia" },
{ "LIBYA", "Tripoli" },
{ "MADAGASCAR", "Antananarivo" },
{ "MALAWI", "Lilongwe" },
{ "MALI", "Bamako" },
{ "MAURITANIA", "Nouakchott" },
{ "MAURITIUS", "Port Louis" },
{ "MOROCCO", "Rabat" },
{ "MOZAMBIQUE", "Maputo" },
{ "NAMIBIA", "Windhoek" },
{ "NIGER", "Niamey" },
{ "NIGERIA", "Abuja" },
{ "RWANDA", "Kigali" },
{ "SAO TOME E PRINCIPE", "Sao Tome" },
{ "SENEGAL", "Dakar" },
{ "SEYCHELLES", "Victoria" },
{ "SIERRA LEONE", "Freetown" },
{ "SOMALIA", "Mogadishu" },
{ "SOUTH AFRICA", "Pretoria/Cape Town" },
{ "SUDAN", "Khartoum" },
{ "SWAZILAND", "Mbabane" },
{ "TANZANIA", "Dodoma" },
{ "TOGO", "Lome" },
{ "TUNISIA", "Tunis" },
{ "UGANDA", "Kampala" },
{ "DEMOCRATIC REPUBLIC OF THE CONGO (ZAIRE)", "Kinshasa" },
{ "ZAMBIA", "Lusaka" },
{ "ZIMBABWE", "Harare" },
// Asia
{ "AFGHANISTAN", "Kabul" },
{ "BAHRAIN", "Manama" },
{ "BANGLADESH", "Dhaka" },
{ "BHUTAN", "Thimphu" },
{ "BRUNEI", "Bandar Seri Begawan" },
{ "CAMBODIA", "Phnom Penh" },
{ "CHINA", "Beijing" },
{ "CYPRUS", "Nicosia" },
{ "INDIA", "New Delhi" },
{ "INDONESIA", "Jakarta" },
{ "IRAN", "Tehran" },
{ "IRAQ", "Baghdad" },
{ "ISRAEL", "Jerusalem" },
{ "JAPAN", "Tokyo" },
{ "JORDAN", "Amman" },
{ "KUWAIT", "Kuwait City" },
{ "LAOS", "Vientiane" },
{ "LEBANON", "Beirut" },
{ "MALAYSIA", "Kuala Lumpur" },
{ "THE MALDIVES", "Male" },
{ "MONGOLIA", "Ulan Bator" },
{ "MYANMAR (BURMA)", "Rangoon" },
{ "NEPAL", "Katmandu" },
{ "NORTH KOREA", "P'yongyang" },
{ "OMAN", "Muscat" },
{ "PAKISTAN", "Islamabad" },
{ "PHILIPPINES", "Manila" },
{ "QATAR", "Doha" },
{ "SAUDI ARABIA", "Riyadh" },
{ "SINGAPORE", "Singapore" },
{ "SOUTH KOREA", "Seoul" },
{ "SRI LANKA", "Colombo" },
{ "SYRIA", "Damascus" },
{ "TAIWAN (REPUBLIC OF CHINA)", "Taipei" },
{ "THAILAND", "Bangkok" },
{ "TURKEY", "Ankara" },
{ "UNITED ARAB EMIRATES", "Abu Dhabi" },
{ "VIETNAM", "Hanoi" },
{ "YEMEN", "Sana'a" },
// Australia and Oceania
{ "AUSTRALIA", "Canberra" },
{ "FIJI", "Suva" },
{ "KIRIBATI", "Bairiki" },
{ "MARSHALL ISLANDS", "Dalap-Uliga-Darrit" },
{ "MICRONESIA", "Palikir" },
{ "NAURU", "Yaren" },
{ "NEW ZEALAND", "Wellington" },
{ "PALAU", "Koror" },
{ "PAPUA NEW GUINEA", "Port Moresby" },
{ "SOLOMON ISLANDS", "Honaira" },
{ "TONGA", "Nuku'alofa" },
{ "TUVALU", "Fongafale" },
{ "VANUATU", "< Port-Vila" },
{ "WESTERN SAMOA", "Apia" },
// Eastern Europe and former USSR
{ "ARMENIA", "Yerevan" },
{ "AZERBAIJAN", "Baku" },
{ "BELARUS (BYELORUSSIA)", "Minsk" },
{ "BULGARIA", "Sofia" },
{ "GEORGIA", "Tbilisi" },
{ "KAZAKSTAN", "Almaty" },
{ "KYRGYZSTAN", "Alma-Ata" },
{ "MOLDOVA", "Chisinau" },
{ "RUSSIA", "Moscow" },
{ "TAJIKISTAN", "Dushanbe" },
{ "TURKMENISTAN", "Ashkabad" },
{ "UKRAINE", "Kyiv" },
{ "UZBEKISTAN", "Tashkent" },
// Europe
{ "ALBANIA", "Tirana" }, { "ANDORRA", "Andorra la Vella" },
{ "AUSTRIA", "Vienna" }, { "BELGIUM", "Brussels" },
{ "BOSNIA", "-" },
{ "HERZEGOVINA", "Sarajevo" },
{ "CROATIA", "Zagreb" },
{ "CZECH REPUBLIC", "Prague" },
{ "DENMARK", "Copenhagen" },
{ "ESTONIA", "Tallinn" },
{ "FINLAND", "Helsinki" },
{ "FRANCE", "Paris" },
{ "GERMANY", "Berlin" },
{ "GREECE", "Athens" },
{ "HUNGARY", "Budapest" },
{ "ICELAND", "Reykjavik" },
{ "IRELAND", "Dublin" },
{ "ITALY", "Rome" },
{ "LATVIA", "Riga" },
{ "LIECHTENSTEIN", "Vaduz" },
{ "LITHUANIA", "Vilnius" },
{ "LUXEMBOURG", "Luxembourg" },
{ "MACEDONIA", "Skopje" },
{ "MALTA", "Valletta" },
{ "MONACO", "Monaco" },
{ "MONTENEGRO", "Podgorica" },
{ "THE NETHERLANDS", "Amsterdam" },
{ "NORWAY", "Oslo" },
{ "POLAND", "Warsaw" },
{ "PORTUGAL", "Lisbon" },
{ "ROMANIA", "Bucharest" },
{ "SAN MARINO", "San Marino" },
{ "SERBIA", "Belgrade" },
{ "SLOVAKIA", "Bratislava" },
{ "SLOVENIA", "Ljuijana" },
{ "SPAIN", "Madrid" },
{ "SWEDEN", "Stockholm" },
{ "SWITZERLAND", "Berne" },
{ "UNITED KINGDOM", "London" },
{ "VATICAN CITY", "---" },
// North and Central America
{ "ANTIGUA AND BARBUDA", "Saint John's" }, { "BAHAMAS", "Nassau" },
{ "BARBADOS", "Bridgetown" }, { "BELIZE", "Belmopan" },
{ "CANADA", "Ottawa" }, { "COSTA RICA", "San Jose" },
{ "CUBA", "Havana" }, { "DOMINICA", "Roseau" },
{ "DOMINICAN REPUBLIC", "Santo Domingo" },
{ "EL SALVADOR", "San Salvador" },
{ "GRENADA", "Saint George's" },
{ "GUATEMALA", "Guatemala City" },
{ "HAITI", "Port-au-Prince" },
{ "HONDURAS", "Tegucigalpa" },
{ "JAMAICA", "Kingston" },
{ "MEXICO", "Mexico City" },
{ "NICARAGUA", "Managua" },
{ "PANAMA", "Panama City" },
{ "ST. KITTS", "-" },
{ "NEVIS", "Basseterre" },
{ "ST. LUCIA", "Castries" },
{ "ST. VINCENT AND THE GRENADINES", "Kingstown" },
{ "UNITED STATES OF AMERICA", "Washington, D.C." },
// South America
{ "ARGENTINA", "Buenos Aires" },
{ "BOLIVIA", "Sucre (legal)/La Paz(administrative)" },
{ "BRAZIL", "Brasilia" }, { "CHILE", "Santiago" },
{ "COLOMBIA", "Bogota" }, { "ECUADOR", "Quito" },
{ "GUYANA", "Georgetown" }, { "PARAGUAY", "Asuncion" },
{ "PERU", "Lima" }, { "SURINAME", "Paramaribo" },
{ "TRINIDAD AND TOBAGO", "Port of Spain" },
{ "URUGUAY", "Montevideo" }, { "VENEZUELA", "Caracas" }, };