Java集合的泛型应用

泛型:
1.在集合中使用泛型
2.自定义泛型、泛型接口、泛型方法(了解)
3.泛型和继承的关系
4.通配符

泛型的特点:
1.限定了数据类型,不用强转,便捷
2.保护了类型的安全
3.避免了类型转化的异常

// 1.在没有使用泛型的情况
	@Test
	public void test1() {
		List list = new ArrayList();
		list.add(90);
		list.add(88);
		list.add(99);
		// 1.没有使用泛型,任何Object及其子类对象都可以添加进来
		list.add(new String("abc"));
		for (int i = 0; i < list.size(); i++) {
			// 2.强制转化为int类型时,引发异常:ClassCastException异常(类型转化异常)
			int sc = (int) list.get(i);
			System.out.println(sc);

		}
	}

// 2.在集合中使用泛型
	// 泛型内部只能存储对象类型
	@Test
	public void test2() {
		List list = new ArrayList();
		list.add(90);
		list.add(88);
		list.add(99);
		// 使用for循环
		for (int i = 0; i < list.size(); i++) {
			int score = list.get(i);
			System.out.println(score);
		}
		// 使用迭代器
		Iterator iterator = list.iterator();
		while (iterator.hasNext()) {
			System.out.println(iterator.next());

		}

	}

@Test
	public void test3() {
		Map map = new HashMap();
		map.put("张三", 80);
		map.put("李四", 88);
		map.put("王五", 98);
		// 方式一
		// 先获取所有key的集合
		Set set = map.keySet();
		// 遍历key的集合 得到每一个key值
		for (String key : set) {
			// 根据key值调用get()方法获取对应的value值
			Integer value = map.get(key);
			System.out.println(key + "-" + value);
		}
		System.out.println("------------------");
        //方式二
		//首先通过map.entrySet()得到Set集合,Set集合中包含得是一个一个Entry(key-value)
		//通过entry的getKey()方法得到key值,通过entry的getValue()得到value值
		Set> entrySet = map.entrySet();
		//遍历循环Set集合,得到Entry
//		for(Entry entry:map.entrySet()){
		for(Entry entry:entrySet){
			String key=entry.getKey();
			int value=entry.getValue();//自动拆箱
			System.out.println(key+"-"+value);
		}
	}

你可能感兴趣的:(Java集合框架)