《Java从入门到放弃》JavaSE入门篇:集合

今天来讲讲Java中的集合和常见集合类型的使用。

什么是集合呢?

刚好最近学校里面军训,只听到教官一声喊:“集合!!!”各位小萌新们就屁颠屁颠的跑过来排列整齐了,这就是集合···

Java中的集合也是一样的意思,Java一声喊:“集合!!!”,那么我们就把需要放在一起的数据放到一个集合中。有的人会说“数组不就有这个功能么”。是的,数组是有这个功能,但集合与数组相比,功能会更多些,而且不同的集合侧重点不一样,具体有哪些优势,我们接下来讲解。

集合与数组最大的区别:集合的长度是不固定的,可以任意添加或删除元素,而数组的长度是固定的,超过了放不进去数据,删除了数据但位置还在。

Java当中的集合提供了一系列的接口和类,都在java.util包中:



一、Collection接口中的通用方法如下:

Collection接口下又分为List接口和Set接口,它们的区别如下:

List接口:存储有序,可以保存重复元素

Set接口: 存储无序,不能保存重复元素

List的用法:

list最常用的子类——ArrayList。

public static void main(String[] args) {
	List list = new ArrayList();
	list.add("111");
	list.add("aaa");
	list.add("222");
	list.add("bbb");
	list.add("555");
	list.add("abc");

	for (int i = 0; i < list.size(); i++) {
		System.out.println(list.get(i));
	}
}

Set的用法:

Set最常用的子类——HashSet。

public static void main(String[] args) {
	Set list = new HashSet();
	list.add("111");
	list.add("aaa");
	list.add("222");
	list.add("bbb");
	list.add("555");
	list.add("abc");

	for (Object object : list) {
		System.out.println(object);
	}
}

List因为是有序的,所以有对应的get方法根据下标读取数据,而Set是无序的,所以只能遍历来得到数据。下图左边为List的遍历结果,右边为Set的遍历结果。

    

至于删除数据和添加相同数据,各位看官就自己测试一下吧,没什么好讲的了。



二、Map接口中的通用方法如下:

Map下面最常用的子类有HashMap和Hashtable。

Map集合是采用键值对的形式来保存数据的,所以很明显,它也没有顺序,这个东西和我们生活中使用的字典类似(根据拼音或部首去查对应的字)。

HashMap和Hashtable的区别:HashMap允许出现空键或空值。而Hashtable则相反。

	public static void main(String[] args) {
		Map map = new HashMap();
		map.put("wang", "王九蛋");
		map.put("yang", "杨羊洋");
		map.put("li", null);
		map.put(null, "钱列先");

		for (Object key : map.keySet()) {
			System.out.println(key+":"+map.get(key));
		}
	}

运行结果:

使用Hashtable效果:



实现开发中,大部分场合我们都使用的泛型集合,它与普通集合相比,其优点是在保存数据之前就要指定数据的类型,否则就不允许你放进去!!!

OK,今天的集合入门就讲到这儿,小伙们可以把上一篇布置的任务使用本篇的集合来实现看看(不再使用数组)。具体集合怎么用,等后面那个综合练习中再来仔细分析。

“软件思维”博客地址:51CTO博客园,感兴趣的小伙伴可以去看相关的其它博文。

时间: 2024-08-27 00:05:09

《Java从入门到放弃》JavaSE入门篇:集合的相关文章

JavaScript从入门到放弃之补充篇

上回说到,基础之篇,看久必新,新久必看. 这回我们来说说除了基础篇之外的一些花里胡哨的东西. 数组 以字面量方式创建数组 //字面量方式创建 var colors = ['red','white','black'] console.log(colors) 输出结果如下: 使用构造函数创建 // 使用构造函数创建数组 var heroes = new Array(); heroes[0] = 'Marvelous'; heroes[1] = 'Riven'; heroes[2] = 'Lee Si

《Java从入门到放弃》入门篇:springMVC数据校验

昨天我们扯完了数据传递,今天我们来聊聊数据校验的问题.来,跟着我一起读:计一噢叫,一按艳. 在springMVC中校验数据也非常简单,spring3.0拥有自己独立的数据校验框架,同时支持JSR303标准的校验框架. Spring的DataBinder在进行数据绑定时,会同时调用校验框架完成数据校验工作. 具体使用步骤如下: 1)导入数据校验的JAR包 2)在springmvc的配置文件中添加校验Bean 3)修改实体类,在属性上加上校验的注解 4)修改昨天的login4方法,加上校验的相关代码

《Java从入门到放弃》入门篇:hibernate中的多表对应关系

hibernate中的对应关系其实就是数据库中表的对应关系, 就跟某些电影中的某些场景是一样一样滴. 比如可以是一男一女,还可以是一男多女, 更可以是多男一女,最后最后最后还可以是多男多女!!! 有些不纯洁的看官肯定已经开始想歪了吧···,我还是上图吧!请看下图 我说滴是这样滴一群人打群架滴场景,嘿嘿嘿··· 好吧,进入正题!!! 数据库中表与表之间的数据映射关系有一对一,一对多,多对一,多对多.例如: 一个身份证只能对应一个护照,一个护照也只能对应一个身份证,这就是一对一的关系 一个男人可以有

《Java从入门到放弃》入门篇:变量

变量是什么玩意呢? 变量,顾名思义就是能变化的量 - - 好吧,举个栗子. 图片上的各种餐具,就是变量,因为同一个盘子可以在不同的时间装不同的菜,在这一桌可以装土豆肉丝,在下一桌可以装清炒黄瓜(当然,这个盘子还是要洗洗干净滴). 那么Java当中的变量有哪些要点呢,其语法是怎么样的呢? 我们来写段代码保存上面的清炒黄瓜吧··· 1 String pan9527 = "清炒黄瓜"; 这就是标准的变量的用法,其语法格式:数据类型 变量名 = 值; 三个要点: 1.数据类型 Java中的数据

《Java从入门到放弃》入门篇:Struts2的常用验证方式(二)

前一回,我们讲完了"直接在功能方法中写验证代码"这种验证方式,接下来,我们继续搞定后续的三种方式. 二.重写validate方法(注意这个方法会验证该类中所有的方法) 使用重写验证方法的好处就是,又可以少写一句代码了!!!! 2.1)修改Action类,在其中添加valiate方法,把之前写在add方法中的验证代码剪切过来     //修改后的add方法     public String add() {         System.out.println("调用了添加的方

《Java从入门到放弃》入门篇:Struts2的基本数据传递方式

把这个和JSP的数据传递方式对比一下,你就会发现·······真的可以少写两句代码!!! struts2中常用的两种数据传递方式如下: 属性匹配方式 ModelDriven接口匹配方式(常用于自定义类型) 个人比较喜欢使用第一种,为什么呢?因为············懒~~~~~. 接下来,有请代码君登场!!! 一.属性匹配方式     属性匹配又分为两种情况,一种是Java基本数据类型,一种是自定义类型,请Look下面的Code.     1.1)自定义一个Singer类,包含3个属性(sin

《Java从入门到放弃》入门篇:Struts2的常用验证方式

感觉过了一个周末,人都懒得不要不要的,今天就来点简单的内容吧 - -,各位看官如果欲求不满的话,可以自行解决或再去宠幸其他"勃主"··· struts2的验证方式主要有四种方式: 一.直接在功能方法中写验证代码(不要扔鸡蛋,这种办法确实算一种) 二.重写validate方法(注意这个方法会验证该类中所有的方法) 三.使用ValidateXxx方法(Xxx对应要验证的方法的方法名) 四.用struts2的验证框架(也就是使用配置文件的方式来实现,这种方法个人觉得应该属于放弃篇的内容,为什

《Java从入门到放弃》入门篇:运算符

运算符分为运算和符. 运算:是一种行为,通过已知量的可能的组合,获得新的量. 符:上古时期,符是沟通人和神的秘密图案,所以符是不可以随便乱画的,故有所谓"画符不知窍,反惹鬼神笑:画符若知窍,惊得鬼神叫"的说法.画符的方法成百上千,有的要掐诀存想神灵随笔而来,有的要步罡踏斗,念动咒语-- 咳,知道运算符的来历了吧,所以程序写得好不好,就看运算符用得妙不妙! ======================我是分割线君=================== 当然,上面都是我瞎扯的,Java中的

《Java从入门到放弃》入门篇:hibernate查询——HQL

不知不觉又到了hibernate的最后一篇了,只感觉时光飞逝~,岁月如梭~! 转眼之间,我们就···························,好吧,想装个X,结果装不下去了,还是直接开始吧· 前面我们已经把hibernate中添加.删改.修改和根据ID得到对象的方法都学习了,但如何才能查询出多条记录呢?比如我想查询所有姓黄的作者,查询标题包含"中"字的博客等.这一篇就来介绍查询. hibernate有两种检索(查询)数据的方式,分别是HQL(Hibernate Query La

《Java从入门到放弃》入门篇:hibernate基本用法

昨天我们进行了hibernate的配置,并且进行了根据ID查询对应数据的操作,今天我们来看看hibernate中的几个配置文件,里面到底有什么东东. 一.hibernate.cfg.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <hibernate-configuration>     <session-factory>         <property name="dialect">