基本常用类与方法

String类的常用方法

和长度有关的方法

方法描述
int length()返回此字符串的长度。

和数组有关的方法

方法描述
byte[] getBytes()将一个字符串转换成字节数组
char[] toCharArray()将此字符串转换为一个新的字符数组。
String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。

和位置有关的方法

方法描述
char charAt(int index)返回指定索引处的 char 值。
int indexOf(int ch)返回指定字符在此字符串中第一次出现处的索引。
int indexOf(int ch, int fromIndex)返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
int lastIndexOf(int ch)返回指定字符在此字符串中最后一次出现处的索引。
int lastIndexOf(int ch, int fromIndex)返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。

和判断有关的方法

方法描述
int compareTo(String anotherString)按字典顺序比较两个字符串。
boolean equals(Object anObject)将此字符串与指定的对象比较。
boolean equalsIgnoreCase(String anotherString)将此 String 与另一个 String 比较,不考虑大小写。
boolean contains(CharSequence chars)判断是否包含指定的字符系列。
boolean isEmpty()判断字符串是否为空。
boolean startsWith(String prefix)测试此字符串是否以指定的前缀开始。
boolean endsWith(String suffix)测试此字符串是否以指定的后缀结束。

和改变内容有关的方法

方法描述
String toUpperCase()将此 String 中的所有字符都转换为大写。
String toLowerCase()将此 String 中的所有字符都转换为小写。
String replace(char oldChar, char newChar)返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
String replaceAll(String regex, String replacement)使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
String substring(int beginIndex)返回一个新的字符串,它是此字符串的一个子字符串。
String substring(int beginIndex, int endIndex)返回一个新字符串,它是此字符串的一个子字符串。
String trim()返回字符串的副本,忽略前导空白和尾部空白。

StringBuilder类的常用方法

方法描述
public StringBuffer append(String s)将指定的字符串追加到此字符序列。
public StringBuffer reverse()将此字符序列用其反转形式取代。
replace(int start, int end, String str)使用给定 String 中的字符替换此序列的子字符串中的字符。
delete(int start, int end)移除此序列的子字符串中的字符。
deleteCharAt(int idx)将指定下标的字符删除。
insert(int offset, String str)str 参数的字符串插入此序列中。
String toString()返回此序列中数据的字符串表示形式。

除此之外包含String的大部分方法,例如charAtlength()substring

构造方法

1
2
3
4
//几种重载构造器的使用案例
StringBuilder sb1 =new StringBuilder();//#1
StringBuilder sb2=new StringBuilder("123");//#2
StringBuilder sb3=new StringBuilder(123);//#2

说明:在StringBuilder类重载的三种构造器中都调用了父类abstractStringBuilder重载的构造器,在StringBuilder类重载的三种构造器中传参,实际上都是在指定继承于abstractStringBuilder父类中的char类型数组的长度

#1 :调用StringBuilder类中的空参构造器,在调用abstractStringBuilder父类的构造器时默认传入16,即char类型value数组的长度为16.

#2:调用StringBuilder类中的形参为string类型的构造器,在调用abstractStringBuilder父类的构造器时传入该string类型字符串的长度string.length()+16,即char类型value数组的长度为string.length()+16.

#3:调用StringBuilder类中的形参为int类型的构造器,在调用abstractStringBuilder父类的构造器时传入该int类型数据,即char类型value数组的长度为该int类型数据值.

Collection接口的常用方法

  1. Collection接口没有直接的实现子类,是通过它的子接口Set 和 List来实现的
  2. 有些Collection的实现类,可以存放重复的元素(List),有些不可以(Set)
  3. 有些Collection的实现类,有些是有序的(List),有些不是有序(Set)
方法描述
add(Object object)添加单个元素
remove(Object object)删除指定元素
contains(Object object)查找元素是否存在
size()获取元素个数
isEmpty()判断是否为空
clear()清空
addAll(Collection collection)添加多个元素list.addAll(list2);
containsAll(Collection collection)查找多个元素是否都存在
removeAll(Collection collection)删除多个元素

其他方法:

方法描述
Object[] toArray()将当前集合转换成数组
Iterator iterator()返回一个Iterator接口实现类的对象,进而实现集合的遍历
1
2
3
4
5
6
7
8
9
10
//集合的遍历
//1、迭代器遍历
Iterator iterator = collection.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
//增强for循环遍历
for (Object i : collection) {
System.out.println(i);
}

List的常用方法

Set的常用方法

方法描述
floor(E e)返回在这个集合中小于或者等于给定元素的最大元素,如果不存在这样的元素,返回null。treeset.floor(26)
ceiling(E e)返回在这个集合中大于或者等于给定元素的最小元素,如果不存在这样的元素,返回null。treeset.ceiling(33)

HashMap的常用方法

方法描述
isEmpty()判断 hashMap 是否为空
hashmap.put(K key,V value)将键/值对添加到 hashMap 中
hashmap.remove(Object key, Object value);删除 hashMap 中指定键 key 的映射关系
hashmap.containsKey(Object key)检查 hashMap 中是否存在指定的 key 对应的映射关系。
hashmap.containsValue(Object value)检查 hashMap 中是否存在指定的 value 对应的映射关系。
hashmap.get(Object key)获取指定 key 对应对 value
hashmap.getOrDefault(Object key, V defaultV)获取指定 key 对应对 value,如果找不到 key ,则返回设置的默认值
hashmap.entrySet()返回 hashMap 中所有映射项的集合集合视图。
hashmap.keySet()返回 hashMap 中所有 key 组成的集合视图。
hashmap.values()返回 hashMap 中存在的所有 value 值。

遍历hashmap

  • 利用map.entrySet().iterator():利用迭代器,从Entry中取出键、取出值
1
2
3
4
5
6
7
8
Iterator<Entry<Integer, Integer>> iterator = hashMap.entrySet().iterator();
while (iterator.hasNext()) {
Entry<Integer, Integer> entry = iterator.next();
Integer key = entry.getKey();
Integer value = entry.getValue();
System.out.print(key + "--->" + value);
System.out.println();
}

TreeMap的常用方法

方法描述
treemap.floorEntry(K key)返回第一个小于或等于key的条目,如果没有这样的 key ,则返回null。Map.Entry<Integer,Integer> entry = map.floorEntry(num);
treemap.floorKey(K key)返回小于或等于给定键的最大键;如果没有这样的键,则返回null。

Stack的常用方法

方法描述
boolean isEmpty()测试堆栈是否为空
push(E item)把项压入堆栈顶部。
Object pop( )移除堆栈顶部的对象,并作为此函数的值返回该对象。
Object peek( )查看堆栈顶部的对象,但不从堆栈中移除它。

Queue的常用方法

初始化:Queue<T> queue=new LinkedList<>();

  • add()和remove()方法在失败的时候会抛出异常(不推荐)(用offer、poll)
方法描述
isEmpty()判断 hashMap 是否为空

对于这一组方法,成功返回true,在操作失败时抛出异常。

方法描述
add(E e)添加一个元素到队尾。
remove()获取队首的元素,并从队列中移除。
element()获取队首的元素,但不从队列中移除。

这一组,成功返回true,失败时返回一个特殊值(取决于操作,为NULL或false),offer(E e)操作是专为容量受限的队列实现而设计的;在大多数实现中,插入操作不会失败。

方法描述
offer(E e)添加一个元素到队尾。
poll()获取队首的元素,并从队列中移除
peek()获取队首的元素,但不从队列中移除

Deque的常用方法

创建对象:Deque<Integer> deque = new ArrayDeque<>();

第一个元素(头部)最后一个元素 (尾部)
抛出异常特殊值抛出异常特殊值
插入addFirst(e)offerFirst(e)addLast(e)offerLast(e)
删除removeFirst()pollFirst()removeLast()pollLast()
检查getFirst()peekFirst()getLast()peekLast()

Deque接口扩展(继承)了 Queue 接口。在将双端队列用作队列时,将得到 FIFO(先进先出)行为。将元素添加到双端队列的末尾,从双端队列的开头移除元素。从 Queue 接口继承的方法完全等效于 Deque 方法,如下表所示:

Queue方法等效Deque方法
add(e)addLast(e)
offer(e)offerLast(e)
remove()removeFirst()
poll()pollFirst()
element()getFirst()
peek()peekFirst()

双端队列也可用作 LIFO(后进先出)堆栈。应优先使用此接口而不是遗留 Stack 类。在将双端队列用作堆栈时,元素被推入双端队列的开头并从双端队列开头弹出。堆栈方法完全等效于 Deque 方法,如下表所示:

堆栈方法等效Deque方法
push(e)addFirst(e)
pop()removeFirst()
peek()peekFirst()

其他常用类与方法

Arrays类的常用方法

  • Arrays位于java.util包下(Arrays是一个操作数组的工具类)
  • Arrays包含各种操作数组的方法(例如排序和搜索)。该类还包含一个静态工厂,允许将数组视为列表。
  • Arrays类里的方法都是静态方法可以通过Arrays.方法名()直接调用
方法描述
Arrays.sort(int[] a)对一个数组的所有元素按从小到大的顺序进行排序。
Arrays.copyOf(int[] original,int newlength)将原始数组的元素,复制到新的数组中,可以设置复制的长度。
Arrays.copyOfRange(int[] original,int from,int to)将某个范围内的元素复制到新的数组中。
Arrays.asList()将数组转化为List集合来处理。举例:List<String> items = Arrays.asList(str.split(" "));
Arrays.fill(int val,[int from,int to])给定特定值val,使整个数组中或者某下标范围内的元素值为val。
Arrays.binarySearch(int[] arr, int target)对排序好的数组,采用二分查找的方式查找某个元素,可以在整个数组中查找,也可以在某个范围内查找。

Character类的常用方法

方法描述
boolean Character.isDigit(char ch)判断指定字符是否为数字。
boolean Character.isUpperCase(char ch)判断指定字符是否为大写字母。
boolean Character.isLowerCase(char ch)判断指定字符是否为小写字母。

Integer类的常用方法

方法描述
int bitCount(int i)统计一个数的二进制位有多少个 1