《java程序设计》第八周学习总结


第十五章 泛型与集合框架

一.知识点学习

1.String类

1.String类不可以有子类。
2.用户无法输出String对象的引用,输出的是字符序列
3.构造方法:String s = new String("We are students");
4.其他构造方法:String (char a[ ]) 和 String(char a[],int startIndex,int count)

1.泛型:

泛型(Generics)的主要目的是可以建立具有类型安全的集合框架,如链表、散列映射等数据结构。
泛型类声明:class 名称
*泛型类声明对象:类名后多了一对,必须要用具体的类型替换<>中的泛LinkedList
mylist=new LinkedList();

  • 泛型类中的泛型变量bottom只能调用Object类中的方法
    *在使用这些泛型类建立数据结构时,不必进行强制类型转换,即不要求进行运行时的类型检查

2.链表:

*LinkedList泛型类创建的对象以链表结构存储数据。
add(E obj)向链表依次增加节点。
LinkedList泛型类实现Lis泛型接口中的一些常用方法
public boolean add(E element)向链表末尾添加一个新的节点。
public void add(int index ,E element)向链表的指定位置添加一个新的节点。
public void clear()删除链表的所有节点,使当前链表成为空链表。
public E remove(int index)删除指定位置上的节点。
public boolean remove(E element)删除首次出现含有数据elemen的节点。
public E get(int index)得到链表中指定位置处节点中的数据。
LinkedList泛型类本身新增加的一些常用方法
public void addFirst(E element)向链表的头添加新节点。
public void addLast(E element)向链表的末尾添加新节点。
public E getFirst()得到链表中第一个节点中的数据。
public E getLast()得到链表中最后一个节点中的数据。
public E removeFirst()删除第一个节点,并返回这个节点中的数据。

3.堆栈

*堆栈是一种“后进先出”的数据结构,只能在一端进行输入或输出数据的操作。
先进后出(First In Last Out)
后进先出(Last In First Out)
使用Stack泛型类创建一个堆栈对象
使用push、pop、empty、peek、search等方法对栈进行操作或查看栈的状态
public E push(E item);实现压栈操作
public E pop();实现弹栈操作
public boolean empty();判断堆栈是否还有数据
public E peek();获取堆栈顶端的数据,但不删除该数据
public int search(Object data);获取数据在堆栈中的位置

4.散列映射

*常用方法:
public void clear()清空散列映射
public Object clone()返回当前散列映射的一个克隆
public V get(Object key)返回散列映射中使用key做键的键/值对中的值
public V put(K key,V value)将键/值对数据存放到散列映射中,该方法同时返回键所对应的值
public boolean isEmpty()如果散列映射不含任何“键/值”对,方法返回true,否则返回false
public V remove(Object key)删除散列映射中键为参数指定的“键/值”对,并返回键对应的值
public int size()返回散列映射的大小,即散列映射中“键/值”对的数目

5.树集

*TreeSet类创建的对象称作树集
在树集中,同一层中的结点从左到右按:大小顺序递增,从上到下递增
即下一层的都比上一层的小。
在插入树集的结点前要在创建对象的类中实现Comparable接口
树映射是一种特殊的树,树映射的结点存储关键字/值对

*常用方法
public boolean add(E o)向树集添加加节点
public void clear()删除树集中的所有节点
public void contains(Object o)如果树集中有包含参数指定的对象。
public E first()返回树集中的第一个节点中的数据(最小的节点)
public E last()返回最后一个节点中的数据(最大的节点)
public isEmpty()判断是否是空树集,如果树集不含任何节点,该方法返回true
public boolean remove(Object o)删除树集中的存储参数指定的对象的最小节点
public int size()

二.学习代码

package com.jihekuangjia;
//创建一个员工的类
public class YuanGong {
//定义名字性别属性
private String name;
private String sex;
public YuanGong() {}
public YuanGong(String name, String sex) {
super();
this.name = name;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}

测试代码

package com.jihekuangjia;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
//创建一个测试类
public class LianXi {
public static void main(String[] args) {
//创建员工对象赋值
YuanGong ren1 = new YuanGong("李明","男");
YuanGong ren2 = new YuanGong("赵明","女");
YuanGong ren3 = new YuanGong("钱明","男");
YuanGong ren4 = new YuanGong("孙明","女");
//创建键值对的集合对象
Map<String,YuanGong> rens = new HashMap<String,YuanGong>();
//把英文名与员工对象按照键值对的方式存在HashMap
rens.put("Jack", ren1);
rens.put("lisa", ren2);
rens.put("kangkang", ren3);
rens.put("rose", ren4);
//获得键的集合
Set ren = rens.keySet();
//增强for循环输出英文名对应的名字和性别
for(String r:ren) {
YuanGong r1 =rens.get(r);
System.out.println(r+"对应的学生姓名是:"+r1.getName()+"性别是:"+r1.getSex());
}
}
}

三.集合框架

20175305张天钰《java程序设计》第八周学习总结的更多相关文章

  1. 20145302张薇 《Java程序设计》第二周学习总结

    20145302张薇 <Java程序设计>第一周学习总结 教材学习内容总结 第三章 第三章讲的是基本类型,变量,运算符和基本条件语句. 基本类型分为: 整数:short(2 byte),i ...

  2. 20145302张薇《Java程序设计》第九周学习总结

    20145302 <Java程序设计>第九周学习总结 教材学习内容总结 第十六周 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC目的:让Jav ...

  3. 201521123027 <java程序设计>第八周学习总结

    1.本周学习总结 1.1思维导图 2.书面作业 Q1.List中指定元素的删除(题目4-1) 1.1 实验总结 总结:判断List中是否存在指定元素,需要用到equals方法,若存在就用remove进 ...

  4. 20175305张天钰《java程序设计》第九周学习总结

    <java程序设计>第九周学习总结

  5. 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...

  6. 20145313张雪纯 《Java程序设计》8周学习总结

    20145313张雪纯 <Java程序设计>8周学习总结 教材学习内容总结 java.util.logging包的优点在于提供了日志功能相关类与接口,不必额外配置日志组件就可以在标准jav ...

  7. 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...

  8. 20175204 张湲祯 2018-2019-2《Java程序设计》第二周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第二周学习总结 教材学习内容总结 -第二章基本数据类型与数组要点: -标识符与关键字:标识符的第一个字符不能是数字字符: ...

  9. 20175204 张湲祯 2018-2019-2《Java程序设计》 第一周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第一周学习总结 教材学习内容总结 -第一章Java入门要点: -Java的地位:具有面向对象,与平台无关,安全稳定和多线 ...

  10. 20175313 张黎仙《Java程序设计》第九周学习总结

    目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...

随机推荐

  1. Springboot集成ECharts

    ECharts 是中国的,也是世界的! ECharts官网: ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前 绝大部分浏览器(IE8 ...

  2. jvm 字节码执行 (二)动态类型支持与基于栈的字节码解释执行

    动态类型语言 动态类型语言的关键特征是它的类型检查的主体过程是在运行期而不是编译期. 举例子解释“类型检查”,例如代码: obj.println("hello world"); 假 ...

  3. 微信小程序 开发文档

    官方开发文档: 小程序公众平台 小程序开发者指南 小程序开发者文档 学习资源: 微信:官方入门教程 微信:WeUI 是一套同微信原生视觉体验一致的基础样式库 微信:微信小程序示例 视频: 学堂在线:学 ...

  4. Microsoft Internet Explorer v11 / XML External EntityInjection 0day

    [+] Credits: John Page (aka hyp3rlinx) [+] Website: hyp3rlinx.altervista.org[+] Source:  http://hyp3 ...

  5. antd table 点击行触发radio 或 checkbox

     UIStore.ts (使用mobx) 1 import { observable, action, computed } from 'mobx' export class UIStore { @o ...

  6. Linux的快捷键一

  7. neo4j语法

    图数据库在社交网络.实时推荐.征信系统.人工智能等领域有广泛应用. 集群特征:主从复制,重选主服务器和容错:每个实例都有自己的本地缓冲 性能优势:查询内不跨网络:实时操作,具有快速和一致的响应时间:缓 ...

  8. 【作业3.0】HansBug的第三次博客规格总结

    转眼间第三次作业了,似乎需要说点啥,那就说点. 规格&工业 说到这个,不得不提一下软件开发的发展史. 历史的进程 早在上世纪50年代,就已经有早期的编程语言出现,也开始有一些程序编写者出现(多 ...

  9. java程序设计习题总结

    ---恢复内容开始--- main()方法的参数名可以改变:main()方法的参数个数不可以改变. 当一个程序没有main()方法是,是可以编译通过的,但是不能给运行,因为找不到一个主函数入口. 标识 ...

  10. tensorflow--交叉熵

    学而不思则罔,思而不学则怠. 最近在看<TensorFlow 实战Google深度学习框架第二版>这本书.从头开始学习深度学习,对于细节方面进行探究.相当于重新拾起来这门”手艺“. 这篇随 ...