第二课 常用的API

1 java.util包

1.1 Arrays

(1)copyOf
数组类型 新数组=Arrays.copyOf(原数组, 长度),长度大于原数组长度的时候,通常是用在扩容的场景

1.2 Date

(1)getYear
返回日期的年

(2)getMonth
返回日期的月,从0开始,表示1月

(3)setTime
设置日期,从1970年算起,这个日期跟1970之间相差的毫秒数作为参数

1.3 java.util.regex包

1.3.1 Pattern

(1)compile
返回Pattern对象,比如Pattern p=Pattern.compile("\w+")
(2)pattern()
返回内部封装的正则表达式
(3)split
用于分隔字符串,p.split(“nishi shui a ”)
(4)matches
匹配,比如Pattern.matches("\d+",“2223”),或者p.matcher(“2223”)

1.3.2 Matcher;

(1)matches
是否匹配,比如Pattern p=Pattern.compile("\d+"); Matcher m=p.matcher(“22bb23”);
m.matches();

(2)find();
m. find(),返回是否匹配到字符串
(3)start
返回匹配到的子字符串在字符串中的索引位置.
(4)end
返回匹配到的子字符串的最后一个字符在字符串中的索引位置的下一个位置,包头部不包尾
(5)group
返回匹配到的子字符串

1.4 Calendar

(1)getInstance
根据当前系统地区创建Calendar实例,描述的是当前系统时间,Calendar.getInstance()
(2)getTime
以Date形式描述当前Calendar所描述的时间
(3)set
设置日期的某个分量,比如设置月calendar.set(Calendar.MONTH,4)
(4)get
返回日期的某个分量,calendar.get(Calendar.DAY_OF_MONTH)

1.5 java集合类

结构图如下,黄线是继承,绿线是实现,还有就是有标记生成,意思是某种集合通过某个方法可以取得另外一种集合
在这里插入图片描述

在这里插入图片描述

下面讲解一些常用的集合:

1.5.1 ArrayList

(1)add()
将元素插入到指定位置的 arraylist 中
(2)addAll()
添加集合中的所有元素到 arraylist 中
(3)clear()
删除 arraylist 中的所有元素
(4)clone()
复制一份 arraylist
(5)contains()
判断元素是否在 arraylist
(6)get()
通过索引值获取 arraylist 中的元素
(7)indexOf()
返回 arraylist 中元素的索引值
(8)removeAll()
删除存在于指定集合中的 arraylist 里的所有元素
(9)remove()
删除 arraylist 里的单个元素
(10)size()
返回 arraylist 里元素数量
(11)isEmpty()
判断 arraylist 是否为空
(12)subList()
截取部分 arraylist 的元素
(13)set()
替换 arraylist 中指定索引的元素
(14)sort()
对 arraylist 元素进行排序
(15)toArray()
将 arraylist 转换为数组
(16)lastIndexOf()
返回指定元素在 arraylist 中最后一次出现的位置
(17)retainAll()
保留 arraylist 中在指定集合中也存在的那些元素
(18)containsAll()
查看 arraylist 是否包含指定集合中的所有元素
(19)replaceAll()
将给定的操作内容替换掉数组中每一个元素
(20)removeIf()
删除所有满足特定条件的 arraylist 元素
(21)forEach()
遍历 arraylist 中每一个元素并执行特定操作
(22)iterator
迭代过程中不能通过集合删除元素,增加也不可以,否则会出现并发修改异常,ConcurrentModificationException,Iterator 是工作在一个独立的线程中,并且拥有一个 mutex 锁。
Iterator 被创建之后会建立一个指向原来对象的单链索引表,当原来的对象数量发生变化时,这个索引表的内容不会同步改变,所以当索引指针往后移动的时候就找不到要迭代的对象,
所以按照 fail-fast 原则 Iterator 会马上抛出 java.util.ConcurrentModificationException 异常。 所以 Iterator 在工作的时候是不允许被迭代的对象被改变的。但你可
使用 Iterator 本身的方法 remove() 来删除对象, Iterator.remove() 方法会在删除当前迭代对象的同时维护索引的一致性

1.5.2 Vector

(1)add
在此向量的指定位置插入指定的元素,将指定元素添加到此向量的末尾
(2)addAll
将指定 Collection 中的所有元素添加到此向量的末尾,按照指定 collection 的迭代器所返回的顺序添加这些元素;
也可以在指定位置将指定 Collection 中的所有元素插入到此向量中
(3)addElement
将指定的组件添加到此向量的末尾,将其大小增加 1。
(4)capacity
返回此向量的当前容量。
(5)clear
从此向量中移除所有元素。
(6)clone
返回向量的一个副本。
(7)contains
如果此向量包含指定的元素,则返回 true
(8)containsAll
如果此向量包含指定 Collection 中的所有元素,则返回 true
(9)copyInto
将此向量的组件复制到指定的数组中
(10)elementAt
返回指定索引处的组件
(11)elements
返回此向量的组件的枚举
(14)firstElement
返回此向量的第一个组件
(15)get
返回向量中指定位置的元素
(16)indexOf
返回此向量中第一次出现的指定元素的索引,如果此向量不包含该元素,则返回 -1,也可以指定从哪个位置开始
(17)insertElementAt
将指定对象作为此向量中的组件插入到指定的 index 处
(18)isEmpty
测试此向量是否不包含组件
(19)lastElement
返回此向量的最后一个组件
(20)lastIndexOf
返回此向量中最后一次出现的指定元素的索引;如果此向量不包含该元素,则返回 -1,也可以指定从哪个位置开始
(21)remove
移除此向量中指定位置的元素,或者移除此向量中指定元素的第一个匹配项
(22)removeAll
从此向量中移除包含在指定 Collection 中的所有元素
(23)removeAllElements
从此向量中移除全部组件,并将其大小设置为零
(24)removeElement
从此向量中移除变量的第一个(索引最小的)匹配项
(25)removeElementAt
删除指定索引处的组件
(26)removeRange
从此 List 中移除其索引位于 fromIndex(包括)与 toIndex(不包括)之间的所有元素
(27)retainAll
在此向量中仅保留包含在指定 Collection 中的元素。
(28)set
用指定的元素替换此向量中指定位置处的元素。
(29)setElementAt(Object obj, int index)
将此向量指定 index 处的组件设置为指定的对象。
(30)ize()
返回此向量中的组件数。
(31)subList(int fromIndex, int toIndex)
返回此 List 的部分视图,元素范围为从 fromIndex(包括)到 toIndex(不包括)。
(32)toArray()
返回一个数组,包含此向量中以恰当顺序存放的所有元素。

1.5.3 LinkedList

有些方法其实已经提供了栈的功能,比如First()和Last
(1)add
向链表末尾添加一个新节点,或者向链表指定位置添加一个新节点
(2)addFirist(Object element)
向链表表头添加一个新节点,该节点中的数据是参数element指定的对象
(3)addLast(Object element)
向链表表尾添加一个新节点,该节点中的数据是参数element指定的对象
(4)removeFirst()
删除第一个节点并返回这个节点中的对象
(5)removeLast()
删除最后一个节点并返回这个节点中的对象
(6)remove(int index)
删除指定位置的节点
(7)get(int index)
得到指定位置的节点
(8)getFirst()
得到链表第一个节点的对象
(9)getLast()
得到链表最后一个节点的对象
(10)indexOf(Object element)
返回节点对象element在链表中首次出现的位置,如果链表中无此节点的对象则返回-1
(11)lastIndexOf(Object element)
返回节点对象element在链表中最后出现的位置,如果链表中无此节点的对象则返回-1
(12)set(int index,Object element)
将当前链表index位置节点中的对象替换成参数element指定的对象,返回被替换对象
(13)size()
返回链表的长度即节点个数
(14)contains(Object element)
判断链表节点对象中是否含有element

1.5.4 Stack

除了由Vector定义的所有方法,自己也定义了一些方法
(1)Stack()
创建空栈
(2)peek()
返回栈顶的值;
(3)push(E item)
入栈操作;
(4)pop()
出栈操作;
(5)empty()
判断栈是否为空;
(6)search
返回对象在栈中的位置;

1.5.5 HashSet

(1)add
如果指定的元素尚不存在,则将其添加到此集合中。
(2)clear
从该集中删除所有元素。
(3)clone
返回此HashSet实例的浅表副本:未克隆元素本身。
(4)contains
如果此set包含指定的元素,则返回 true 。
(5)isEmpty
如果此集合不包含任何元素,则返回 true 。
(6)iterator
返回此set中元素的迭代器。
(7)remove
如果存在,则从该集合中移除指定的元素。
(8)size
返回此集合中的元素数(基数)。
(9)spliterator
在此集合中的元素上创建late-binding和失败快速 Spliterator

1.5.6 LinkHashSet

LinkedHashSet底层使用LinkedHashMap来保存所有元素,它继承与HashSet,其所有的方法操作上又与HashSet相,是具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序可为插入顺序或是访问顺序。同

1.5.7 TreeSet

采用红黑树,TreeSet是用来排序的, 可以指定一个顺序, 对象存入之后会按照指定的顺序排列

(1)add
如果不存在,则添加。
(2)clear
清空
(3)contains
查询指定元素是否存在,存在返回true
(4)isEmpty
判空
(5)iterator
返回此容器的迭代器
(6)remove
如果指定元素在此set中则移除
(7)size
返回元素数量
(8)ceiling
返回一个大于等于当前元素的最小元素,不存在返回null
(9)floor
返回一个小于等于当前元素的最大元素,不存在返回null
(10)higher
返回此 set 中严格大于给定元素的最小元素,不存在返回null
(11)lower
返回此set中严格小于给定元素的最大元素,不存在返回null
(12)first
返回第一个元素
(13)last
返回最后一个元素

1.5.8 HashMap

(1)clear
从此映射中删除所有映射。
(2)clone
返回此HashMap实例的浅表副本:未克隆键和值本身。
(3)compute
尝试计算指定键及其当前映射值的映射(如果没有当前映射, null )。
(4)computeIfAbsent
如果指定的键尚未与值关联(或映射到 null ),则尝试使用给定的映射函数计算其值并将其输入此映射,除非 null 。
(5)computeIfPresent
如果指定键的值存在且为非null,则尝试在给定键及其当前映射值的情况下计算新映射。
(6)containsKey
如果此映射包含指定键的映射,则返回 true
(7)containsValue
如果此映射将一个或多个键映射到指定值,则返回 true
(8)entrySet
返回此映射中包含的映射的Set视图。
(9)get
返回指定键映射到的值,如果此映射不包含键的映射,则返回 null 。
(10)isEmpty
如果此映射不包含键 - 值映射,则返回 true 。
(11)keySet
返回此映射中包含的键的Set视图。
(12)merge
如果指定的键尚未与值关联或与null关联,则将其与给定的非空值关联。
(13)put
将指定的值与此映射中的指定键相关联。
(14)putAll
将指定映射中的所有映射复制到此映射。
(15)remove
从此映射中删除指定键的映射(如果存在)。
(16)size
返回此映射中键 - 值映射的数量。
(17)values
返回此映射中包含的值的Collection视图。

1.5.9 WeakHashMap

WeakHashMap 是一个很特殊的成员,它的特殊之处在于 WeakHashMap 里的元素可能会被 GC 自动删除,即使程序员没有显示调用 remove() 或者 clear() 方法
(1)put
put 方法是将指定的 key, value 对添加到 map 里,存储结构类似于 HashMap;不同的是,WeakHashMap 中存储的 Entry 继承自 WeakReference,实现了弱引用
(2)get
get 方法根据指定的 key 值返回对应的 value
(3)remove
remove 的作用是通过 key 删除对应的元素
(4)clear
从此映射中删除所有映射
(5)clone
返回此HashMap实例的浅表副本:未克隆键和值本身。
(6)containsKey
如果此映射包含指定键的映射,则返回 true
(7)containsValue
如果此映射将一个或多个键映射到指定值,则返回 true
(8)entrySet
返回此映射中包含的映射的Set视图。l
(9)isEmpty
如果此映射不包含键 - 值映射,则返回 true
(10)keySet
返回此映射中包含的键的Set视图
(11)putAll
将指定映射中的所有映射复制到此映射。
(12)size
返回此映射中键 - 值映射的数量。
(13)values
返回此映射中包含的值的Collection视图

1.5.10 HashTable

(1)clear
清空散列表
(2)clone
克隆散列表
(3)contains
是否包含某个记录
(4)containsKey
是否包含某个指定的key
(5)ontainsValue
是否包含指定的值
(6)elements
返回散列表的所有元素
(7)entrySet
将散列表转换成hashSet
(8)get
获取散列表的指定位置的元素
(9)isEmpty
判断散列表是否为空
(10)keySet
返回所有的key,封装在Set里面
(11)keys
返回所有的key的枚举
(12)put
添加元素
(13)putAll
添加子散列表
(14)remove
删除元素
(15)size
返回散列表的大小
(16)values
返回散列表所有的值的枚举

1.5.11 TreeMap

TreeMap集合是基于红黑树(Red-Black tree)的 NavigableMap实现。该集合最重要的特点就是可排序,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator方法进行排序

(1)ceilingEntry(K key)
返回指定的Key大于或等于的最小值的元素,如果没有,则返回null
(2)ceilingKey(K key)
返回指定的Key大于或等于的最小值的Key,如果没有,则返回null
(3)clone()
返回集合的副本
(4)descendingKeySet()
返回集合的全部Key,并且是逆序的
(5)descendingMap()
把集合逆序返回
(6)firstEntry()
返回集合中最小Key的元素
(7)firstKey()
返回集合中最小Key的key
(8)floorEntry(K key)
与ceilingEntry()方法相反,是返回小于等于key的最大Key的元素
(9)floorKey(K key)
返回小于等于key的最大Key的key
(10)headMap(K toKey,boolean inclusive)
当inclusive为true时,返回Key小于等于,toKey的所有元素,否则截取Key小于toKey的所有元素
(11)higherEntry(K key)
返回Key大于key的所有元素
(12)higherKey(K key)
返回Key大于key的所有Key
(13)lastEntry()
返回Key最大的元素
(14)lastKey()
返回Key最大的Key
(15)lowerEntry(K key)
返回小于key的最大元素
(16)lowerKey(K key)
返回小于key最大的Key
(17)pollFirstEntry()
删除key最小的元素
(18)pollLastEntry()
删除最大Key的元素
(19)subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
截取集合中Key从fromKey到toKey的元素,否是截取他们本身,取决于true或者false
(20)subMap(K fromKey, K toKey)
截取集合中Key从fromKey到toKey的元素,包括fromKey,不包括toKey
(21)tailMap(K fromKey, boolean inclusive)
当inclusive为true时,截取Key大于等于fromKey的所有元素,否则截取Key大于fromKey的所有元素
(22)navigableKeySet
返回所有的key
(22)get
根据指定的key获取value
(23)put
往集合里添加一个键值对
(24)putAll
根据一个map集合批量添加键值数据
(25)remove
根据key移除指定的键值对
(26)replace
指定原先的key和value,第三个参数为要替换的新值
(27)replaceAll
根据lambda表达式批量替换值
(28)size
返回集合的长度值
(29)values
返回所有的值

1.5.12 LinkedHashMap

HashMap和HashSet都有一个问题,就是迭代HashMap的顺序并不是HashMap放置的顺序,也就是无序。这个时候,LinkedHashMap就闪亮登场了,它虽然增加了时间和空间上的开销,但是通过维护一个运行于所有条目的双向链表,LinkedHashMap保证了元素迭代的顺序。该迭代顺序可以是插入顺序或者是访问顺序,LRU(最近最少使用)缓存就是使用这种结构,很多方法都是继承HashMap的,这里讲解它自己的方法

(1)clear()
清空集合
(2)containsValue(Object value)
返回集合是否包含指定的值
(3)entrySet()
返回所有键值对的set视图
(4)forEach(BiConsumer<? super K,? super V> action)
对集合的每个元素执行action
(5)get(Object key)
返回key对应的值
(6)getOrDefault(Object key, V defaultValue)
返回key对应的值,否则没有的话就返回默认值
(7)keySet()
返回key的set视图
(8)removeEldestEntry(Map.Entry<K,V> eldest)
如果此映射移除其最旧的条目返回true
(9)replaceAll(BiFunction<? super K,? super V,? extends V> function)
替换所有的值为函数执行的结果
(10)values()
返回所有的值

1.5.13 IdentityHashMap

(1)put
添加元素
(2)get
获取元素
(3)remove
删除元素
(4)containsValue(Object value)
返回集合是否包含指定的值
(5)putAll
批量添加元素
(6)keySet
返回key的set视图
(7)isEmpty
判断是否为空
(8)values
返回所有的值
(9)size
返回元素的大小
(10)isEmpty
判断集合是否为空
(11)entrySet
返回元素的set视图
(12)containsKey
是否包含指定的key
(13)clear
清空集合

2 java.lang包

2.1 String

(1)equals
比较字符串是否相等
(2)toLowerCase
转换成小写
(3)toUpperCase
转换成大写
(4)indexOf
查找字符串在某个字符串的序号
(6)substring
截取子串,包头不包尾,比如str.substring(6,8)返回的是6和7的index上的字串
(7)charAt
返回在某个位置的字符
(8)length
返回字符串的长度
(9)getBytes
可以将char数据按照编码标准拆分为byte数据序列,比如str.getBytes(“gbk”)
(10)matches
将一个字符串和正则表达式匹配,比如str.matches("^\w{8,10}$")
(11)split
将字符串按照某个特殊字符拆分,比如str.split(",\s?")

2.2 StringBuilder

(1)append
在字符串末尾增加子串,buf.append(“大师李敖”)
(2)insert
在字符串某个位置插入子串,buf.insert(2,“先生”)
(3)delete
删除某个位置的字串,buf.delete(0,2)
(4)toString
将StringBuilder转换成String

2.3 System

(1)arraycopy
数组的复制,System.arraycopy(原数组,0,目标数组,0原数组长度)
(2)currentTimeMillis
返回当前时间,long类型,单位是毫秒
System.currentTimeMillis()

2.4 包装类(Byte、Boolean、Short、Character、Integer、Long、Float、Double)

(1)valueOf
装箱,也可以用构造器
(2)xxValue
拆箱
(3)toHexString
转成16进制
(4)toBinaryString
转换为2进制
(5)parseXX
将字符串解析为对应的包装类

3 java.text包

3.1 SimpleDateFormat

(1)format
将Date类型转换成字符串,fmt.format(date)
(2)parse
将字符串转换成Date类型,sdf.parse(str)

4 java.math包

4.1 BigInteger

(1)valueOf

4.2 BigDecimal

理论上存取位数只受内存空间影响
(1)valueOf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java封神之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值