美文网首页
JAVA String基础笔记(4)

JAVA String基础笔记(4)

作者: 大虾咪 | 来源:发表于2016-09-27 17:05 被阅读14次

    s1 是一个类类型变量,“abc”是一个对象 。

    字符串最大特点:一旦被初始化就不可以被改变

    StringBuffer 是一个容器

    1.而且长度是可变的

    2.可以字节操作多个数据类型

    3.最终会通过tostring方法变成字符串

    JDK1.5之后 出现了string builder

    StringBuffer是线程同步的

    StringBuilder 是线程不同步的

    集合 Collection

    collection

    List :元素是有序的,元素可以重复,因为该集合体系有索引。

    ArrayList:底层的数据结构使用的是数组结构。特点:查询速度快,但是增删稍慢,线程步同步

    LinkedList:底层的使用的是链表结构。特点:增删速度很快,查询稍慢,线程不同步

    Vector:底层是数组数据结构。线程同步。被ArrayList替代 因为效率低

    Set:元素是无序的(存入和取出的顺序不一定一致),元素不可重复

    Set集合的功能和Collection是一致的

    常见的子类

    HashSet:底层数据结构是哈希表 线程是非同步的

    HashSet是如何保证元素唯一性的呢?

    通过元素的两个方法,hashCode和equals来完成

    如果元素的HashCode值相同,才会判断equals是否为True

    如果元素的HashCode值不同,不会调用equals

    注意:对于判断元素是否存在,以及删除等操作,依赖的方法是hashCode和equals

    TreeSet:可以对Set集合中的元素进行排序。compare to 进行排序

    记住排序时当主要条件相同时,一定要比较次要条件

    底层是2叉树 保证元素唯一性的依据:compareto    删除 增加 都要在compareto中判断

    TreeSet的第二种排序方式。

    当元素自身不具备比较性,或者具备的比较性不是所需要的

    这时需要让集合自身具备比较性(在集合初始化时,就具备比较方式)借助构造函数 new TreeSet(CompareInter)

    泛型

    泛型格式 :通过<>来定义要操作的引用数据类型

    在使用java提供的对象时,什么时候写泛型呢?

    通常在集合框架中很常见

    只要见到<>就要定义泛型

    当使用集合时,将集合中要存储的数据类型作为参数传递到<>即可

    泛型类定义的泛型在整个类中有效,如果被方法使用

    那么泛型类的对象明确要操作的具体类型后,所有要操作的类型就已经固定了

    为了让不同方法可以操作不同类型,而且类型还不确定

    那么可以将泛型定义在方法上

    相关文章

      网友评论

          本文标题:JAVA String基础笔记(4)

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