算法基础(二)---- 统计城市个数

List<CityDTO>的数据如{"广东", "广州"},{"广西", "桂林"},{"广东", "佛山"},{"广东", "江门"},{"广西", "阳朔"},

{"湖北", "荆州"},{"湖南", "长沙"},{"湖北", "襄阳"}......

统计每个省的城市个数

package other;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class test1 {
	class CityDTO {
		private String pro;
		private String city;

		public CityDTO(String pro, String city) {
			this.pro = pro;
			this.city = city;
		}

		public String getPro() {
			return pro;
		}

		public void setPro(String pro) {
			this.pro = pro;
		}

		public String getCity() {
			return city;
		}

		public void setCity(String city) {
			this.city = city;
		}
	}

	public static void main(String args[]) {
		test1 t = new test1();
		CityDTO cityDTO1 = t.new CityDTO("广东", "广州");
		CityDTO cityDTO2 = t.new CityDTO("广西", "桂林");
		CityDTO cityDTO3 = t.new CityDTO("广东", "佛山");
		CityDTO cityDTO4 = t.new CityDTO("广东", "江门");
		CityDTO cityDTO5 = t.new CityDTO("广西", "阳朔");
		CityDTO cityDTO6 = t.new CityDTO("湖北", "荆州");
		CityDTO cityDTO7 = t.new CityDTO("湖南", "长沙");
		CityDTO cityDTO8 = t.new CityDTO("湖北", "襄阳");
		List<CityDTO> list = new ArrayList<CityDTO>();
		list.add(cityDTO1);
		list.add(cityDTO2);
		list.add(cityDTO3);
		list.add(cityDTO4);
		list.add(cityDTO5);
		list.add(cityDTO6);
		list.add(cityDTO7);
		list.add(cityDTO8);
		countCity1(list);
		System.out.println("---------------");
		countCity2(list);
	}

	public static void countCity1(List<CityDTO> list) {
		Map<String, Integer> map = new HashMap<String, Integer>();
		Set<String> set = new HashSet<String>();
		for (int i = 0; i < list.size(); i++) {
			// 利用set集合的特性,只能放进唯一的值
			if (set.add(list.get(i).getPro())) {
				map.put(list.get(i).getPro(), 1);
			} else {
				map.put(list.get(i).getPro(), map.get(list.get(i).getPro()) + 1);
			}
		}
		for (String key : map.keySet()) {
			System.out.println(key + "省共 " + map.get(key) + "个城市");
		}
	}

	public static void countCity2(List<CityDTO> list) {
		Map<String, Integer> map = new HashMap<String, Integer>();
		for (int i = 0; i < list.size(); i++) {
			// 结合map集合的特性,key的值只能唯一,value的值可以更新,使用map的containsKey方法
			if (!map.containsKey(list.get(i).getPro())) {
				map.put(list.get(i).getPro(), 1);
			} else {
				map.put(list.get(i).getPro(), map.get(list.get(i).getPro()) + 1);
			}
		}
		for (String key : map.keySet()) {
			System.out.println(key + "省共 " + map.get(key) + "个城市");
		}
	}
}





猜你喜欢

转载自blog.csdn.net/u010520912/article/details/45247825