小标
2018-11-05
来源 :
阅读 1295
评论 0
摘要:本文主要向大家介绍了JAVA语言入门学习之常用工具类--集合框架 介绍,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
本文主要向大家介绍了JAVA语言入门学习之常用工具类--集合框架 介绍,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
Java 中的集合框架(上)
Java中的集合类:是一种工具类,就像是容器,储存任意数量的具有共同属性的对象
集合的作用
1在类的内部,对数据进行组织 2简单而快速的搜索大数量的条目 3有的集合接口,提供了一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关元素 4有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找对应的唯一对象,而这个关键字可以是任意类型
与数组的对比
数组的长度固定,集合长度可变 数组只能通过下标访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象
Java中的集合
接口
别称
说明
实现类
List接口 序列 存储元素排列有序且可重复。 实现类:ArrayList,数组序列。实现类:LinkedList,链表。
Queue接口 队列 存储元素排列有序且可重复。 实现类:LinkedList,链表。
Set接口 集 存储元素无序且不可重复。 实现类:HashSet,哈希集。
Map接口 内部以两个对象(任意类型)为一个映射去存储数据,这一个映射就是Entry类(Map的内部类)的实例。 常用实现类hashMap,哈希表。
其中ArrayList HashSet HashMap使用频率最高
Collection接口&List接口简介
Collection接口
1是List、Set和Queue接口的父接口
2定义了可用于操作List、Set和Queue的方法——增删改查
List接口及其实现类——ArrayList
1List是元素有序并且可以重复的集合,被称为序列
2List可以精确的控制每个元素的插入位置,或删除某个位置元素
3ArrayList——数组序列,是List的一个重要实现类
4ArrayList底层是由数组实现的
学生选课
4种形式添加(课程对象)
//创建一个课程对象,并通过调用add方法,添加到备选课程List中
Course cr1 = new Course("1" , "数据结构");
coursesToSelect.add(cr1);//从第0位开始存
//对象存入集合都会变成Object类型,取出时需要类型转换
Course temp = (Course) coursesToSelect.get(0);
//集合.add(索引位置, 添加的对象);
//会把原来最初0位的cr1给挤下去,变成第一位,而cr2变成最初第0位【不是覆盖】
coursesToSelect.add(0, cr2);
//数组形式添加
Course[] course = {new Course("3", "离散数学"), new Course("4", "汇编语言")};
coursesToSelect.addAll(Arrays.asList(course));
//数组 带有索引位置的添加
Course[] course2 = {new Course("5", "高等数学"), new Course("6", "大学英语")};
coursesToSelect.addAll(2, Arrays.asList(course2));
迭代器只用来遍历集合中的元素的,本身不具备任何存储元素的功能
【迭代器依赖于某个集合而存在的】不能独立存在
//通过集合的iterator方法,取得迭代器的实例
Iterator<course> it = coursesToSelect.iterator();
System.out.println("有如下课程待选(通过迭代器访问):");
while(it.hasNext()) {
Course cr = it.next();
System.out.println("课程:" + cr.id + ":" + cr.name);
}
//foreach形式
for (Object obj : coursesToSelect) {
Course cr = (Course) obj;
System.out.println("课程:" + cr.id + ":" + cr.name);
}</course>
增查改删
应用泛型管理课程
应用泛型管理课程1
集合中的元素,可以是任意类型的对象(对象的引用)
如果把某个对象放入集合,则会忽略他的类型,而把他当做object处理
泛型则是规定了某个集合只可以存放特定类型的对象
会在编译期间进行类型检查【泛型集合中,不能添加泛型规定的类型及其【子类型】以外的对象,否则会报错!】【泛型集合可以添加泛型的子类型的对象实例】
可以直接按指定类型获取集合元素
应用泛型管理课程2
1泛型集合中的限定类型不能使用基本数据类型
2可以通过使用包装类限定允许存入的基本数据类型
基本类型必须使用包装类作为泛型!
通过set集合管理课程
Set接口及其实现类——HashSet
1Set是元素无序并且不可以重复的集合,被称为集
2HashSet——哈希集,是Set的一个重要实现类
1、Set没有像List中set()方法一样就修改,因为List是有序的,可以指定位置,而Set是无序的。
2、查询遍历时,Set不能用get()方法去获取,因为无序没有指定索引ID,但可以使用foreach和iterator来遍历,但是每次遍历出来可能顺序都不一样,还是因为无序造成的。
3、Set中的size(),add(),addAll(),remove(),removeAll()与List类似。
4、Set还可以添加null;
Set中,添加某个对象,无论添加多少次, 最终只会保留一个该对象(的引用)
并且保留的是第一次添加的那一个
Java 中的集合框架(中)
Map和HashMap
Map接口:
1Map提供了一种映射关系,其中的元素是以键值对(Key-value)的形式存储的,能够实现根据key快速查找value
2Map中的键值对以Entry类型的对象实例形式存在
3键(key值)不可重复,value值可以
4每个键最多只能映射到一个值
5Map接口提供了分别返回key值集合,value值集合以及Entry(键值对)集合的方法
6Map支持泛型,形式如:Map
HashMap类:
1HashMap是Map的一个重要实现类,也是最常用的,基于哈希表实现
2HashMap中的Entry对象是无序排列
3key值和value值都可以为null,但一个HashMap只能有一个key值为null映射(key值不可重复)【key:null,value:null占一个map的size】
keySet()返回的是所有键的一个set集合
// 通过keySet方法,返回Map中的所有“键”的Set集合
Set<string> keySet = students.keySet();
// 取得students的容量用size()
System.out.println("总共有:" + students.size() + "个学生!");
// 遍历keySet,取得每一个键,再调用get方法取得每个键对应的value
for (String stuId : keySet) {
Student st = students.get(stuId);
if (st != null)
System.out.println("学生:" + st.name);
}</string>
hashMap实现Map接口,hashMap中的映射是无序的,因此输出也是无序的;但是把的Key拿出来放到Set里面去,Set是有序的,你按着有序的KEY拿出VALUE,那结果当然是有序的啦
Map的get()方法中传入key值就可以取得key值对应的对象
// 通过entrySet方法,返回Map中的所有键值对
Set<entry<string, student="">> entrySet = students.entrySet();
for (Entry<string, student=""> entry : entrySet) {
System.out.println("取得键:" + entry.getKey());
System.out.println("对应的值为:" + entry.getValue().name);
}</string,></entry<string,>
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!
喜欢 | 1
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号