美文网首页
编程第四周的日常<一>

编程第四周的日常<一>

作者: 一条有科研精神的程序狗 | 来源:发表于2016-12-24 13:46 被阅读0次

容器

  • --装其他对象的对象。
  • --Collection 所有容器的父类接口。
  • --容器里面只放对象类型的引用,不能放基本数据类型。
  • java 5 以后,向容器中放基本数据类型时,会引入自动装箱机制,将其自动装箱(auto-boxing),所谓自动装箱就是将基本数据类型处理成对应的包装类型。例如:list.add(1000);<==> list.add(new Interger(1000));

List();

  • 创建 List<String> list = new ArrayList<>(); 使用容器时一定要写上泛型参数。
    容器里面只能放对象类型的引用,不能放基本的数据类型。(基本数据的包装类)(List常用的实现类有ArrayList和LinkedList)

  • 1、ArrayList();
    底层实现是一个数组,使用连续的内存,可以实现随机存取。

  • 2、LinkedList();
    底层实现是一个双向循环链表,可以使用碎片内存,不能随机存取,但是增删元素需要修改引用即可,所以增删元素有更好的性能。

  • 3、用迭代器去遍历对象。
    Iterator<String> iterator = list.iterator(); //拿到一个迭代器对象。
    while(iterator.hasNext()){
    System.out.println(iterator.next());
    }

  • 4、使用foreach对容器里的元素进行遍历。
    list.forEach(System.out::println); //容器元素的遍历 。

  • 5、使用foreach加Lambda表达式对容器里的元素进行遍历。
    list.forEach(e ->{ //e - 容器内的每一个对象
    System.out.println(e.toUpperCase());
    }); //forEach 是只读循环。


Set();

  • 不存在重复的元素在里面
  • 注意:没有get();方法,因为没有有序的排列,无法找出确定的元素。
    删除不能给索引,因为是集合,没有按下表存取元素的方法。
  • 1、HashSet)();
    灰常重要的一点:必须重写 HashCode();和equals();两个方法。使用程序自动产生
    好的哈希函数(单向哈希函数):不同的对象尽可能产生不同的哈希码。
    如果要使用HashSet那么一定要重写两个方法:
    -- HashCode() --->让相同的对象产生相同的哈希码,让不同的对象尽可能产生不同的哈希码。
    --equals() --->定义比较两个对象的规则-先比引用、再比类型、其次比属性。(只比相等或不等)
    ~自反性
    ~对称性
    ~传递性
    ~一致性
  • 2、TreeSet();
    去重和排序
    最好要重写 compareTo();方法。以实现TreeSet();的排序功能。
    一种比较的写法:
    public int compareTo(student o) {
    if (this.name.compareTo(o.name) == 0) {
    return this.age - o.age;
    }else{
    return this.name.compareTo(o.name) ;
    } }

Map<k,v>

  • K - 此映射所维护的键的类型
    V - 映射值的类型
  • .put(K key,V value);放东西
    .remove(Object Key);删除
  • 两个实现的版本
    1、HashMap();注意要重写:.HashCode();和.equals();
    2、TreeMap();注意可能要重写:comparableTo();

泛型

  • 通过<>接受一种引用数据类型,在编译程序时,会使用该类型检查集合中存储的对象是否是该类型,如果不是,不通过。从而把运行时的问题转移到编译时期,提高了程序的安全性。
  • 泛型擦除:泛型是用在编译时期的,编译完之后的.class文件中是不存在泛型的。
就地实例化
Lambdar表达式
适配模式

相关文章

  • 编程第四周的日常<一>

    容器 --装其他对象的对象。 --Collection 所有容器的父类接口。 --容器里面只放对象类型的引用,不...

  • 编程第五周的日常<一>

    引入泛型的折半查找 I/O流 定义:流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被...

  • 知行家精力管理践行.2之四:情绪管理

    212班11.0践行第四周作业安排(2021.9.11~9.17) 第四周主题:情绪管理 作业:练习在日常生活中觉...

  • 编程第三周的日常<一>

    继承 1、从已有的类创建新类的过程就是继承(实现了代码的复用) (1) 提供继承信息的称之为父类 提供继承信息的称...

  • 编程第四天的日常

    int a = 10 ; int : 关键字(50)。a:标识符。= :运算符。10:字面量。 练习 请假回学校考试

  • 编程第五周的日常<二>

    多线程 定义:简单的说,当程序同时完成多见事情时,就是所谓的多线程程序。(基于并发的思想) 1 进程和线程 进程 ...

  • 编程第六周的日常

    网络通信 局域网与因特网 服务器是指提供信息的计算机程序,客户机是指请求信息的计算机或程序。局域网 广域网 网...

  • 各部总结 第四周

    各部总结 第四周 秘书处 上周:颁发流动红旗;日常量化;周四视频;学习强国;日常站勤; 本周:日...

  • C 语言程序设计 伴读记 —(第四章)

    C 语言程序设计 伴读记 —(第四章) 店长解忧解忧编程杂货店1周前 收录于话题 #c语言 7个 点击上方“编程解...

  • 各部总结 第十一周

    各部总结 第11周 秘书处 上周:简书更新;日常站勤;更新简书;日常量化;周四视频;第十五届第四...

网友评论

      本文标题:编程第四周的日常<一>

      本文链接:https://www.haomeiwen.com/subject/laplvttx.html