zoukankan      html  css  js  c++  java
  • 20175305张天钰《java程序设计》第八周学习总结

    《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());
    }
    }
    }

    三.集合框架

  • 相关阅读:
    P3 创建项目(下)
    P2 创建项目(中)
    P1 创建项目(上)
    ASP.NET Core 3.x 入门视频(完结)
    网易云微专业《职场人必学的Python技能课》
    01.Python配置与运行
    阶段一-03.地址,订单,支付,定时任务开发-第1章 收货地址功能开发-1-6 收货地址
    ASYNC PROGRAMING IN JAVASCRIPT[转]
    Bluebird-NodeJs的Promise
    理解Nodejs的Event Loop
  • 原文地址:https://www.cnblogs.com/zhangtianyu/p/10747282.html
Copyright © 2011-2022 走看看