java之j2se:再学java对象容器

今天是开学第一天,按照上学期的讲课进度,本该是可以开始学习多线程了,但是由于换了老师,可能交接方面有点出入,又给我们讲授了一遍java对象容器,所以这也是为什么题目为“再学”。



本文目录:

  1. 集合的主要用途

  2. 单值类集合:List类与Set类
  3. 键值对类集合:Map类

集合的主要用途:集合主要在查询数据返回的时候常用。比如要使用jsp做一个学生信息管理系统,需要从数据库中返回查询学生的结果,把这些结果放入一个集合里,再通过方法返回,在显示层(view)可以使用jsp标签来把他们显示出来。

单值类集合:单值类集合包括List与Set这两大类,两类都是继承自Collection根接口。在这两大接口类中又可以细分为好几个实现该接口的类,主要有一下这几个:

List 

 

优点

缺点 特点
       ArrayList 便于集合快速随机访问 删除效率低 异步

LinkedList

便于插入和删除对象 随机访问效率低 -----

List迭代方式:迭代list可以用get(Index)方法,也可以使用增强的for循环foreach来迭代,亦可使用迭代器来遍历。

Set

     
treeSet 有序的,自然数排序,但是必须实现Comparable接口,重写ComoareTo()方法。 不可重复
HashSet 无序的,主要依据equals和hashcode判断是否是同一对象 不可重复
     

Set的迭代不能使用get方法,可以使用迭代器和增强的for循环来遍历。

Map

课堂上主要将了HashMap,它是一种键值对集合,键Key是不允许重复的,一个键只能对应一个值,但是一个值可以对应多个键。常用来在不同页面之间传递数据。比如在jsp中使用的request.setAttribute() /  getAttribute()就是使用此种集合实现的。

HashMap有一个方法 entrySet()值得一提。

public Set<Map.Entry<K,V>> entrySet()

此方法返回此映射中所包含的映射关系set的试图,通俗来说,也就是装有以一对一对的<K,V>的实体的set中(装在set中)此时可以使用迭代set的方法去迭代每一个HashMap实体。

=========================END=================

第一次写博客感觉好蛋疼,用到是Window Live Writer,代码也没贴,图也没有,草草几句就收场,总感觉这编辑器用的不是那么顺手,不如word,写起来像吃苍蝇一样不顺畅, 我是不是不适合写博客?这么高大上的东西。

java之j2se:再学java对象容器,布布扣,bubuko.com

时间: 2024-10-22 14:07:03

java之j2se:再学java对象容器的相关文章

再学Java 之 Integer 包装类缓存

前言:本博文将涉及的Java的自动装箱和自动拆箱,可以参考 这篇文章 和 官方教程 ,这里不再赘述. 首先,先看一个小程序: public class Main { public static void main(String[] args){ Integer i1 = new Integer(1); Integer i2 = new Integer(1); System.out.println(i1 == i2); Integer i3 = 1; Integer i4 = 1; System.

再学Java 之 interface的成员变量

前言:最近在学多线程,写“哲学家就餐问题(Dining Philosophers)”的时候,需要定义一个全局的变量,即哲学家的人数.常用的做法是在其中一个类中定义一个static final的变量,然后让其他类通过类名访问他.在这里,想使用之前实训项目的第一版应用层协议的设计想法,即使用一个接口类来定义所有子类都会使用到的变量.然后,就引出了一个interface成员变量和static final的问题. (一)一个简单的问题 首先,看一段代码: 1 //Variable.java 2 publ

再学Java 之 private、protected、public和default的作用域

前言:如果提到protected的访问控制级别,您的第一反应是"只能是子类才可以访问",那么您很可能需要往下看. 首先,大致介绍一下各个访问控制符的访问控制级别(具体的介绍很多大牛的博文都有介绍,我就不细说了,可以点击这里查看),如下图:   private default protected public 同一个类中 √ √ √ √ 同一个包中   √ √ √ 子类中     √ √ 全局范围内       √ 在这里,很多人都存在一个误区,就是,认为protected修饰的方法只能

再学Java 之 foreach循环

从Java 5 之后,Java提供了一种新的循环:foreach循环,这种循环遍历数组和集合更加简洁. foreach循环语法格式如下: for ( type variableName : array | collection){ //variableName自动迭代访问每个元素 } 在很多书籍中,都能找到这么一句话"使用foreach循环迭代数组元素时,并不能改变数组元素".如: String books = {"a","b","c&

再学Java 之 形参个数可变函数

自Java 5后,Java允许定义形参个数可变的方法,从而允许运行过程中,为方法指定不确定个数的形参. 其定义方法的格式如下: void function_name ( type ... variables){ //对variables数组进行操作 } 在上面格式中,系统将输入的参数全部存储到variables数组中.也就是说,下面的定义方式,其实是相同的: void function_name ( type ... variables); void function_name ( type[]

转行学Java后悔吗?学Java到底有没有前途?

Java语言是目前全球最流行的开发语言,同时也是现在大多数的企业使用的开发语言,所以现在不少人想要转行学Java.毕竟转行是件大事,关乎一个人整个人生的职业规划,不少小伙伴可能会想问这样的问题:转行学Java后悔吗?学Java到底有没有前途?在这里小编想说转行学Java后不后悔,真的得结合自身情况,学Java本身还是很有前途的. 首先我们来看看Java的就业前景.我国目前对软件人才的需求已达20万并且以每年20%左右的速度增长,国家非常重视软件行业的发展.现在一般软件公司,大多需要java方面的

什么是Java开发?长沙学Java哪里比较好?

什么是Java开发?长沙学Java哪里比较好?用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台.动态的Web.Internet计算.从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现均支持Java applet. 经过了多年的发展,Java早已由一门单纯的计算机编程语言,演变为了一套强大的技术体系.是的,什么是Java,我想技术体系四个字应该是最好的概括了吧.Java软件开发主要分三个方向:JAVASE.JAVAME.JAVAEE.开发

再学Java 之 HashMap的底层实现

今天参加欢聚时代的面试,我说我自己依靠自己的理解重新实现过HashMap.描述我自己的实现思想后,面试官问“hashmap”底层如果用数组不是效率比较低吗,不是更应该用红黑树吗?我一下子就蒙了.用数组的确效率比较低,但是当初对比JDK的源码发现,JDK的确是使用数组+链表来存储实体. 回来后,急忙看了一下源码,也对比了一下JDK6 和JDK 8的HashMap,发现了不太对劲的地方.原来,当初看的是JDK 6.在这个版本的JDK的确是使用数组+链表来存储.但是到了JDK 8 的时候,为了解决碰撞

中国MOOC_面向对象程序设计——Java语言_第3周 对象容器_1查找里程

第3周编程题 查看帮助 返回 第3周编程题.注意程序(包括注释)中不能出现汉字. 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩. 1 查找里程(10分) 题目内容: 题目内容: 下图为国内主要城市之间的公路里程: 你的程序要读入这样的一张表,然后,根据输入的两个城市的名称,给出这两个城市之间的里程. 注意:任何两个城市之间的里程都