基本常用类与方法
String类的常用方法
和长度有关的方法
和数组有关的方法
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的大部分方法,例如charAt
、length()
、substring
等
构造方法
1 2 3 4
| StringBuilder sb1 =new StringBuilder(); StringBuilder sb2=new StringBuilder("123"); StringBuilder sb3=new StringBuilder(123);
|
说明:在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接口的常用方法
- Collection接口没有直接的实现子类,是通过它的子接口Set 和 List来实现的
- 有些Collection的实现类,可以存放重复的元素(List),有些不可以(Set)
- 有些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
|
Iterator iterator = collection.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); }
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)
对于这一组方法,成功返回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 方法,如下表所示:
add(e) | addLast(e) |
offer(e) | offerLast(e) |
remove() | removeFirst() |
poll() | pollFirst() |
element() | getFirst() |
peek() | peekFirst() |
双端队列也可用作 LIFO(后进先出)堆栈。应优先使用此接口而不是遗留 Stack 类。在将双端队列用作堆栈时,元素被推入双端队列的开头并从双端队列开头弹出。堆栈方法完全等效于 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 |
| |