第12天0310 StringBuffer、StringBuilder、Math、日期类, 集合:Set、List、Map

  • StringBuffer
    • 用于创建内容可以改变的字符串,改变内容时, 不会产生新的对象
    • 创建对象
      • StringBuffer bf = new StringBuffer();//创建默认长度16的字符串缓冲区
      • StringBuffer bt = new StringBuffer(64);//创建对象时指定缓冲器长度
      • StringBuffer bf = new StringBuffer("helloworld");//使用字符串对象来初始化缓冲区
    • 常用方法,与String类大致相同,独有的方法如下
      • reverse() 将字符串缓冲区中的内容逆序
      • toString() 将StringBuffer对象转为String对象
      • append(str) 将str追加到最后
      • insert(pos, str) 将字符串传入到指定位置。
  • StringBuffer与String
    • StringBuffer是可变长的,String是定长的
    • StringBuffer对象比较是否相等时,需toString()转为String对象来比较
    • StringBuffer节省内存
  • StringBuilder
    • StringBuilder与StringBuffer的构造函数与成员函数几乎完全相同。
    • 区别
      • StringBuffer是线程安全的,StringBuilder是线程不安全的。
      • StringBuffer是jdk1.0就有的,StringBuilder是jdk5.0之后才有的。
      • StringBuffer的一些方法实现要比StringBuffer效率高。
  • Math类
    • 主要封装了数学运算相关的方法,都是static方法。类是final类。
    • 常用的
      • Math.PI double类型的圆周率
      • ceil(num) 返回大于等于num的最小整数
      • floor(num) 返回小于等于num的最大整数
      • abs(num) 返回num的绝对值
      • random() 返回0.0~1.0之间的随机的double类型的数,不可传参
      • sqrt(num) 返回num的平方根
      • round(num) 对num四舍五入取整
  • 日期类
    • Date类 java.util.Date
      • 好多方法都已经过时,被弃用了
      • Date date = new date();//使用系统当前时间构造date对象。
      • before(date)//判断当前对象是否比date的时间早,如果早,返回true,否则返回false.
      • after(date) //与before相反。
    • Calendar类 日历类
      • 不能使用new,通过getInstance()获取对象
      • 获取对象 Calendar cal = Canlendar.getInstance();
      • 常用方法
        • get(字段名) 获取日历对象的某个字段的值
          • Calendar.YEAR 年
          • Calendar.MONTH 获取月份(0~11)
          • calendar.DATE 日
          • calendar.HOUR 时
          • calendar.MINUTE 分
          • calendar.SECOMD 秒
        • set(字段名, 字段值) 设置某个字段的值
          • cal.set(Calendar.YEAR,2019);
          • 也可以年月日同时设置:
            • cal.set(2020,3,10);
        • getTime();返回一个Date对象。
  • SimpleDateFormat 日期格式化类
    • 1、首先创建一个SimpleDateFormat 对象
      • SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    • 2、使用fmt.format(date)来格式化一个对象
      • fmt.format(new Date()); //将当前时间的date对象格式化为fmt对象所指定的格式字符串。
    • 3、还可以将一个时间的字符串解析成一个Date对象
      • Date fmt.parse(str); //将日期字符串解析成一个Date对象,如果字符串str不是按照fmt指定的格式,那么会抛出ParseException。
  • 集合
    • 集合是一种容器,使用啦存放数据的结构,集合只能存放引用类型的元素
    • 数组也是一种容器,定长。可以存放引用、基本数据类型。
    • Collection接口 是List和Set的父接口
      • 常用方法
        • boolean add(Object obj) 将obj对象添加到集合中,如果成功,返回true,否则返回false。
        • boolean addAll(Collection coll) 将另一个集合coll中的所有元素添加到本集合中
        • boolean isEmpty() 判断集合是否为空
        • boolean contain(obj) 判断集合是否包含obj这个元素
        • boolean containAll(Colletion coll) 判断另一个集合coll中的所有元素是否都包含在本集合中。
        • Iterator iterator() 获取集合的迭代器
        • Object[] toArray() 将集合中的元素转为对象数组。
        • boolean remove(obj) 将某个对象从集合中删除。
        • boolean removeAll(Collection coll) 将coll集合的所有元素从本集合中删除。
        • boolean clear() 清空本集合中的所有元素。
        • int size() 获取集合中元素的个数
    • Set 集合
      • Set集合存放的元素是无序的,不重复的。
        • 无序是指元素在集合中的存储的顺序和加入集合顺序不一致
        • 不重复是指Set集合中不允许有相同的元素 即集合中的任意两个元素如果使用equals返回false。
      • Set集合的两个实现类
        • HashSet 采用的是哈希算法来存储
          • 创建HashSet对象 HashSet<Integer> set = new HashSet<>();//Integer可换
        • TreeSet
          • 存储顺序是按照由小到大来存储的,所有TreeSet中存储的类型的对象,必须能够比较大小
          • 所存的类型,必须实现Comparable接口,重写接口中的compareTO()方法,否则会抛出异常。
    • List集合
      • 有序的,允许元素重复添加。有序是指:添加元素的顺序与存储元素的顺序一致。
      • List的具体实现类
        • ArrayList
          • 类似于数组的链表,线性存储的,便于通过索引来高效的查找元素
          • ArrayList的用法
            • 构造方法 ArrayList<类型> list = new ArrayList<>();
            • 常用的方法
              • get(int index) 获取索引值为index对应的元素。index的取值,从0开始,到集合的size-1,否则越界,报IndexOutOfBoundsException
              • int indexOf(obj) 返回元素obj在list中第一次出现的索引值,如果没有,则返回-1.
              • int lastIndexOf(obj) 返回元素obj在list中最后一次出现的索引值,如果没有,则返回-1.
              • set(int index,obj) 将索引为index的元素设置为obj。
              • remove(int index) 删除指定索引index处的元素
              • remove(obj) 删除第一次出现的obj的元素。
        • LinkedList
          • 数据结构中链表的实现,相比于ArrayList可以在头部和尾部进行增加、删除元素的操作。可以非常方便的实现stack或者Queque等数据结构。
          • 构造方法:LinkedList<类型> list = new LinkedList<>();
          • 常用的的方法(除了ArrayList的方法之外还包括)
            • addFirst(obj) 将元素obj加入到头部
            • addLast(obj) 将元素obj加入到尾部
            • getFirst() 读取第一个元素
            • getLast() 读取尾部的元素
            • removeFirst() 返回并删除第一个元素
            • removeLast() 返回并删除最后一个元素
        • 如何选择二者
          • 1、如果随机查找非常频繁,选择ArrayList,因为ArrayList线程存储
          • 2、如果对于插入、删除操作频繁,选择LinkedList,插入、删除的效率比ArrayList高
          • 3、实现Stack或者Queque的数据结构,使用LinkedList,功能函数多。
    • map集合
      • 存储的是键值对,key/value,可以通过key查找value,key是唯一的,不允许重复
      • 常用方法
        • put(key,value) 往map中添加key/value的元素,如果map中已经存在该key,那么value会被替换成新的value,此时返回值是被替换的值,否则返回null
        • putAll(map) 将map对象中的所有元素添加到本集合中
        • get(key) 通过key来查找对应的value
        • remove(key) 删除map中键为key的元素
        • remove(key,value) 删除map中键为key,值为value的元素
        • containsKey(key) 是否包含key,如果包含,返回true,不包含,返回false
        • containsValue(value) 是否包含某个值为value的元素
        • size() 元素个数
        • isEmpty() 判断元素个数是否为空
        • Set keySet() 返回map中所有的key组成的Set集合。一般用于遍历map。
        • values() 返回map中所有value组成的Collection集合
        • clear() 清空map中的所有元素。
      • map 的实现类
        • HashMap
          • 存储是将key按hash算法来排列
          • 构造方法:HashMap<key的类型,value的类型> map = new HashMap<>();
        • TreeMap
          • 按照key的值由小到大存储
            • 存入map中的key的类型是要能够比较大小,实现Comparable接口
        • HashMap与TreeMap的区别
          • HashMap是通过Hash算法存储的;TreeMap是通过红黑树来实现的,存储的key是排好序的。
          • HashMap可以通过调优因子来调优;TreeMap始终是平衡树。
          • hashMap存储效率优于TreeMap。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值