JAVA基础 之 集合概述

概述:

    1.既然有了数组为什么还需要集合?

       数组长度不可变化,当需要保存数量变化的数据时数组就不太适用了

       不方便表示映射关系(键值对)

    2.java集合分为两大类 Collection和Map,而Collection又分Set和List,这就是我们熟知的java3大集合类 Map、Set、List

    3.Map、Set、List区别简介

       List:有序的,内容可重复的 (长度可变的数组)

       Set:无序的,不可重复的 (一个容器:大筐)

       Map:键值对,键不可重复 (键值对 key-value)

    4.集合不能保存基本数据类型

    5.集合的层级结构图(待续...)

    6.请仔细看程序注释

 

package com.cxy.collection;

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


public class JiHeTest
{
	/** java集合概述
	 */
	public static void main(String[] args)
	{
		//假设幼儿园一班有3个小朋友
		String[] children={"小明","小红","小白"};
		System.out.println("一班有:"+children.length+"个小朋友");
		//现在小黑要进入一班! 没有地方了 因为 幼儿园一班(children数组)只有3个位置
		try
		{
			children[3]="小黑";  //这里会出现数组越界异常,因为数组长度是3,不可变!!
		}catch(Exception e)
		{
			System.out.println("没有位置容下第4个小朋友");
			System.out.println("==================");
		}
		
		//幼儿园一班每个小朋友对应的成绩
		int[] chengji={100,99,98};
		for(int i=0;i<children.length;i++)
		{
			System.out.println(children[i] + "成绩:" + chengji[i]);
		}
		//这样看似好像没什么问题,但是如果数组存储的是大学生信息呢?上万的数据用两个数组对应同序号的数据,难免会出错
		//从上面的例子来看 用两个数组表示映射关系 显然不合适(不直观,易出错)
		System.out.println("==================");
		
		//使用集合解决问题
		List<String> childrenList=new ArrayList<String>();
		childrenList.add("小明");
		childrenList.add("小红");
		childrenList.add("小白");
		childrenList.add("小黑");
		
		for(int i=0;i<childrenList.size();i++)
		{
			System.out.print(childrenList.get(i)+"  ");
		}
		//通过打印可以看出 小黑终于进入了幼儿园一班
		System.out.println("");  //保持打印格式 无实际用处
		System.out.println("==================");
		
		Map<String,Integer> chengjiMap=new HashMap<>(); 
		//注意这里的值是Integer对象,不能是int 因为集合只能是对象不能是基本数据类型。
		chengjiMap.put("小明", 100); //这里之所以能写成基本数据类型是因为他自己封包成Integer对象。
		chengjiMap.put("小红", 99);
		chengjiMap.put("小白", 98);
		//这样就能很清晰的看到成绩表的结构了,下面我们来遍历一下
		for(String one:chengjiMap.keySet())
		{
			System.out.println(one+"成绩:"+chengjiMap.get(one));
		}
		//通过打印结果可以看到map的输出是无序的
	}
}

 

结束语:

    1.本文重点介绍了为什么有数组还需要集合的存在

    2.本文只是概述三大集合特点,并无具体介绍每个集合的用法。(集合需要了解的不仅仅是这三个)

    3.本文涉及到了 数组、异常、泛型、List、Set、Map 如有不懂请关注我博客中相关教程

 

相关文章连接:

1.《JAVA基础 之 Iterator》

2.《JAVA基础 之 Collection》

 

声明:

1.原创文章,转载请标明并加本文连接。

2.更详尽的API请参见  http://docs.oracle.com/javase/7/docs/api/

3.文章反映个人愚见,如有异议欢迎讨论指正 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值