JAVA String基础笔记(4)

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提供的对象时,什么时候写泛型呢?

通常在集合框架中很常见

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

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

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,740评论 18 399
  • 第十天 权限修饰符 public protected default private 同一类 true true ...
    炙冰阅读 607评论 0 1
  • 这位年轻的姑娘 眼神忧郁迷茫 深情地望着远方 望着寒彻心骨的山岗 啊 这世间怎么如此荒凉 蓝天之下 只有冰山能牵引...
    北极花阅读 199评论 1 4
  • 生病的步骤: 虚→寒→湿→凝→瘀→堵→瘤→癌。 [玫瑰]“虚”的体质是觉“累,疲劳,犯困,没有精神”等; [玫瑰]...
    爱家好酵素自制许伟阅读 284评论 0 0
  • 持续更新 private和public可别首字母大写 undefined reference to vtable:...
    bohan_阅读 191评论 0 1

友情链接更多精彩内容