常用类,枚举和注解,集合和泛型以及lambda表达式学习总结

常用类,枚举和注解,集合和泛型以及lambda表达式学习总结

常用类
1.string类

public int length()
public char charAt(int index):
//返回在指定index位置的字符。index从0开始
public boolean equals(Object anObject)//比较两个字符串是否相等。相等返回true。否则返回false
public int compareTo(String anotherString)
public int indexOf(String s)//返回s字符串在当前字符串中首次出现的位置。若没有,返回-1
public int indexOf(String s ,int startpoint)//返回s字符串从当前字符串startpoint位置开始的,首次出现的位置。
public int lastIndexOf(String s):
//返回s字符串最后一次在当前字符串中出现的位置。若无,返回-1
public int lastIndexOf(String s ,int startpoint)
public boolean startsWith(String prefix):
//判断当前字符串是否以prefix开始。
public boolean endsWith(String suffix)//判断当前字符串是否以suffix结束。
public boolean regionMatches(int firstStart,String other,int otherStart ,int length):
//判断当前字符串从firstStart开始的子串与另一个字符串other从otherStart开始,length长度的字串是否equals
public String substring(int startpoint)
public String substring(int start,int end):
//返回从start开始到end结束的一个左闭右开的子串。start可以从0开始的。
public String replace(char oldChar,char newChar)
public String replaceAll(String old,String new)
public String trim()//去除当前字符串中首尾出现的空格,若有多个,就去除多个。
public String concat(String str):
//连接当前字符串与str
public String[] split(String regex)//按照regex将当前字符串拆分,拆分为多个字符串,整体返回值为String[]

2、StringBuffer 类

java.lang.StringBuffer代表可变的字符序列,可对字符串内容进行增删,而String每次有新的字符串就会在字符串常量池里新建一个字符串。 StringBuffer是一个容器。

StringBuffer类有三个构造方法:
1.StringBuffer()初始容量为16的字符串缓冲区
2.StringBuffer(int size)构造指定容量的字符串缓冲区 3.StringBuffer(String
str)将内容初始化为指定字符串内容 3、StringBuilder 类

效率:StringBuilder>StringBuffer>String

日期类

1、java.lang.System类

System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。此方法适于计算时间差。
计算世界时间的主要标准有:
UTC(Universal Time Coordinated)
GMT(Greenwich Mean Time)
CST(Central Standard Time)

2、java.util.Date类

表示特定的瞬间,精确到毫秒
java.sql.Date类是其子类

构造方法: Date( )使用Date类的无参数构造方法创建的对象可以获取本地当前时间。 Date(long date)

常用方法:

getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
toString():把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中:
dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是时间标准。

3、java.text.SimpleDateFormat类

易于国际化,默认的模式和语言环境创建对象
格式化:日期->文本 使用SimpleDateFormat的format方法
解析:文本->日期 使用SimpleDateFormat的parse方法

4.java.util.Calendar(日历)类

Calendar是一个抽象基类,主用用于完成日期字段之间相互操作的功能。
获取Calendar实例的方法
使用Calendar.getInstance()方法
调用它的子类GregorianCalendar的构造器。
一个Calendar的实例是系统时间的抽象表示,通过get(int field)方法来取得想要的时间信息。比如YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY 、MINUTE、SECOND

public void set(int field,int value)
public void add(int field,int amount)
public final Date getTime()
public final void setTime(Date date

Math类

java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。

  • abs 绝对值
  • acos,asin,atan,cos,sin,tan 三角函数
  • sqrt 平方根
  • pow(double a,double b) a的b次幂
  • log 自然对数
  • exp e为底指数
  • max(double a,double b)
  • min(double a,double b)
  • random() 返回0.0到1.0的随机数
  • long round(double a)
  • double型数据a转换为long型(四舍五入)
  • toDegrees(double angrad) 弧度—>角
  • toRadians(double angdeg) 角度—>弧度

常用方法:

public BigInteger abs()
public BigInteger add(BigInteger val)
public BigInteger subtract(BigInteger val)
public BigInteger multiply(BigInteger val)
public BigInteger divide(BigInteger val)
public BigInteger remainder(BigInteger val)
public BigInteger pow(int exponent)
public BigInteger[] divideAndRemainder(BigInteger val)
BigDecimal类

一般的Float类和Double类可以用来做科学计算或工程计算,但在商业计算中,要求数字精度比较高,故用到java.math.BigDecimal类。BigDecimal类支持任何精度的定点数。

构造器

public BigDecimal(double val)
public BigDecimal(String val)
常用方法:
public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)

集合

认识集合 开发应用程序时,如果想存储多个类型的数据可以使用数组来实现;但是使用数组存在一些明显的缺陷

1.数组长度固定不变,不能很好的适应元素数量动态变化的情况

2.可以通过数组名.length来获取数组的长度,却无法直接获取数组中实际存储的元素个数

3.数组采用在内存中分配连续空间的存储方式存储,根据元素信息查找时效率比较低,需要多次比较

List接口
Collection接口是最基本的集合接口,可以存储一组不唯一、无需的对象。

List接口正是继承自Collection接口

是一个有序集合,用户可以使用List接口中的元素,类似于数组中。List接口中允许存放重复元素,也就是说List可以存储一组有序、不唯一的对象。

改接口常用实现类有:ArrayList和LinkedList。

1.使用ArrayList类动态存储数据

  • ArrayList集合类:对数组进行封装,实现了长度可变的数组,而且和数组采用相同的存储方式,,在内存中分配连续的空间,它不等同于数组,

  • ArrayList集合中可以添加任何类型的数据,并且添加的数据类型都将转换成object类型,但是在数组中只能添加同意数据类型的数据。

  • 在ArrayList集合中可以存储任何类型的对象,在编程中将接口的引用指向实现类的对象是Java实现多态的一种形式,也是软件开发中实现低耦合的方式之一。

  • ArrayList集合因为可以使用索引来直接获取元素,所以它的优点是遍历元素和随机访问元素的效率比较高。

2.使用LinkedList类动态存储数据

LinkedList类:它是接口的链接列表实现类。它支持实现所有List接口可选的列表的操作,并且允许元素值是任何数据,包括null。采用链表存储方式存储数据,优点在于插入、删除元素时效率比较高,但是LinkedList类的查找效率很低。

在Collection基础上增加的方法:

  • add():在列表的指定位置查出指定元素 addAll():将指定集合中的所有元素都插入到列表的指定位置

  • get():返回列表中指定位置的元素 indexOf():返回此列表中第一次出现的指定元素的索引;如不包含,返回-1

  • lastIndexOf():返回此列表中最后出现的指定元素的索引;如不包含,返回-1 listIterator():返回此列表的列表迭代器

  • listIterator(int index):返回此列表的列表迭代器,从列表的指定位置开始 remove():移除列表中指定位置的元素

  • set():用指定元素替换列表中指定位置的元素 subList(int fromIndex,int

  • toIndex):返回列表中[fromIndex,toIndex)之间的部分视图

Set接口

set接口概述:
set接口是Collection接口的另外一个常用子接口,Set接口描述的是一种比较简单的集合。集合中的对象并不按特定的方式排序,并且不能保存重复的对象,也就是说Set接口可以存储一组唯一、无序的对象。

Set接口常用的实现类有HashSet。

使用HashSet类动态存储数据,HashSet集合的特点如下:

  1. 集合内的元素是无序排列的

  2. HashSet类是非线程安全的

  3. 允许集合元素值为null

Iterator接口

概述:此接口表示对集合进行迭代的迭代器。Iterator接口为集合而生,专门实现集合的遍历。此接口主要有如下两个方法:

  • 1.hasNext():判断是否存在下一个可访问的元素,如果仍有元素可以迭代,则返回true。
  • 2.next():访问要返回的下一个元素。 凡是由Collection接口派生而来的接口或者类,都实现了iterate()方法,iterate()方法返回一个Iterator对象。

Map接口

概述:Map接口存储一组成对的键(key)—值(value)对象,提供key到value的映射,通过key来检索。Map接口中的key不要求有序,不允许重复。value同样不要求有序,但允许重复。

使用HashMap类动态存储数据
HashMap类优点:查询指定元素效率高

Collection类

概述: Collection类是Java提供的一个集合操作工具类,它包含了大量的静态方法,用于实现对集合元素的排序、查找和替换等操作。

compareTo()方法被称为它的自然比较方法。此方法用于比较此对象与指定对象的排序,如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。

compareTo()方法的定义语法格式如下:

int compareTo(Object obj);

其中:
1.参数:obj即要比较的对象
2.返回值:负整数、零或正整数,根据此对象是小于、等于还是大于指定对象返回不同的值
实现此接口的对象列表(和数组)可以通过Collection.sort()方法(和ArrayList.sort()方法)进行自动排序

替换集合元素(fill)

概述: 若有一个需求,需要把List集合中所有的元素都替换为相同的元素,则可以使用Collections类的静态方法fill()来实现。

泛型

定义语法格式:类1或者接口<类型实参>对象 = new类2<类型实参>();

例如:ArrayList< String > list = new ArrayList < String >();
解释:创建一个ArrayList集合,但规定该集合中存储的元素类型必须为String类型

泛型在集合中的应用:

  • 1.List的泛型形式----->List< E >
  • 2.ArrayList的泛型形式------->ArrayList< E > 在使用put()方法存储数据时,Map集合的key类型必须为String类型而value类型必须为自己创建的类型的数据而在遍历键集的for循环中,key的类型不再是Object而是String;同理value也不是Object而是Student,也不需要进行强制转换。

深入泛型
在学习如何使用泛型前,还需要了解一下两个重要概念。
1.参数化类型:参数化类型包含一个类或者接口,以及实际的类型参数列表。
2.类型变量:是一种非限定性标识符,用来指定类、接口或者方法的类型。

Lambda表达式

1.λ 希腊字母,英语名称 lambda
2.避免匿名内部类定义过多,只保留核心逻辑
3.实质属于函数式编程
eg:

//1.匿名内部类
like = new ILike() {
    @Override
    public void lambda() {
        System.out.println("I like lambda4");
    }
};

//2.用lambda简化

like = () -> {
    System.out.println("I like lambda5");
};

感想:这一阶段学习知识点较多,容易混淆,需要阶段性回顾总结。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值