字符串、数组、栈、队列、接口及其实现类
Java语言下各种基础方法记录,目录如下:
字符串(String)
数组(Array)
字符数组(charArray)
栈(Stack)
队列(Queue)
双端队列(Deque)
List 接口下的增删改查方法
Map 接口下的增删改查方法
其他常用集合方法
关于字符串、数组和字符数组之间的常见方法及其示例:
1 字符串(String):
length():返回字符串的长度。charAt(index):返回指定索引位置的字符。substring(startIndex, endIndex):返回从指定起始索引到结束索引之间的子字符串。toLowerCase():将字符串转换为小写。toUpperCase():将字符串转换为大写。
示例:
String str = "Hello, World!";
int length = str.length(); // 13
char ch = str.charAt(0); // 'H', 字符串元素转字符数组元素
String subStr = str.substring(0, 5); // "Hello"
String lowerCaseStr = str.toLowerCase(); // "hello, world!"
String upperCaseStr = str.toUpperCase(); // "HELLO, WORLD!"
StringBuilder 是一个可变的字符串类,可以进行字符串的拼接和修改操作。常用的方法有:
append(str):在字符串末尾添加指定字符串。insert(index, str):在指定位置插入指定字符串。delete(start, end):删除指定范围内的字符。replace(start, end, str):替换指定范围内的字符为指定字符串。reverse():反转字符串。length():返回字符串的长度。
示例:
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append("World");
sb.insert(5, " ");
sb.delete(5, 6);
sb.replace(5, 6, ",");
sb.reverse();
int length = sb.length();
String result = sb.toString(); // "dlroW,olleH"
! ! ! 字符串数字转换:
int num = 0:String str = new String(""):String str = String.valueOf(num):数字转字符串!!!String str = num + "":直接拼接int num = Integer.parseInt(str):字符串转数字!!!Integer num = Integer.valueOf(str):字符串转数字char[] ch = str.toCharArray():字符串转字符数组!!!String str = new String(ch):字符数组转字符串!!!String str = String.valueOf():字符数组转字符串!!!
2 数组(Array):
length:返回数组的长度。clone():复制数组。sort():对数组进行排序。
示例:
int[] intArray = {5, 2, 8, 1, 9};
int length = intArray.length; // 5
int[] clonedArray = intArray.clone(); // {5, 2, 8, 1, 9}
Arrays.sort(intArray); // {1, 2, 5, 8, 9}
3 字符数组(charArray):
length:返回字符数组的长度。
示例:
char[] charArray = {'H', 'e', 'l', 'l', 'o'};
int length = charArray.length; // 5
ArrayList 是一个动态数组,可以根据需要自动扩容。常用的方法有:
add(element):在列表末尾添加元素。add(index, element):在指定位置插入元素。remove(index):移除指定位置的元素。get(index):获取指定位置的元素。set(index, element):替换指定位置的元素。indexOf(element):返回指定元素在列表中的第一个出现的索引。contains(element):判断列表是否包含指定元素。size():返回列表的大小。
示例:
ArrayList<String> list = new ArrayList<>();
list.add("Hello");
list.add("World");
list.add(1, "Java");
list.remove(0);
String element = list.get(0); // "Java"
list.set(0, "Python");
int index = list.indexOf("Java"); // 1
boolean contains = list.contains("Python"); // true
int size = list.size(); // 2
LinkedList 是一个双向链表,可以高效地进行插入和删除操作。常用的方法和 ArrayList 相似。
4 栈(Stack):
push(element):将元素压入栈顶。pop():将栈顶元素弹出并返回。peek():返回栈顶元素但不弹出。isEmpty():判断栈是否为空。size():返回栈的大小。
示例:
Stack<Integer> stack = new Stack<>();
stack.push(1);
stack.push(2);
int poppedElement = stack.pop(); // 2
int peekedElement = stack.peek(); // 1
boolean isEmpty = stack.isEmpty(); // false
int size = stack.size(); // 1
5 队列(Queue):先进先出
add(element):将元素添加到队尾。remove():移除并返回队首元素。peek():返回队首元素但不移除。isEmpty():判断队列是否为空。size():返回队列的大小。
示例:
Queue<String> queue = new LinkedList<>();
queue.add("Hello");
queue.add("World");
String removedElement = queue.remove(); // "Hello"
String peekedElement = queue.peek(); // "World"
boolean isEmpty = queue.isEmpty(); // false
int size = queue.size(); // 1
6 双端队列(Deque):
addFirst(element):将元素添加到双端队列的头部。addLast(element):将元素添加到双端队列的尾部。offer(element):将元素添加到双端队列的尾部。removeFirst():移除并返回双端队列的头部元素。removeLast():移除并返回双端队列的尾部元素。peekFirst():返回双端队列的头部元素但不移除。peekLast():返回双端队列的尾部元素但不移除。isEmpty():判断双端队列是否为空。size():返回双端队列的大小。
示例:
Deque<Integer> deque = new LinkedList<>();
deque.addFirst(1);
deque.addLast(2);
int removedFirstElement = deque.removeFirst(); // 1
int peekedLastElement = deque.peekLast(); // 2
boolean isEmpty = deque.isEmpty(); // false
int size = deque.size(); // 1
7 List 接口下的增删改查方法:
add(element):在列表末尾添加元素。add(index, element):在指定位置插入元素。remove(index):移除指定位置的元素。get(index):获取指定位置的元素。set(index, element):替换指定位置的元素。indexOf(element):返回指定元素在列表中的第一个出现的索引。contains(element):判断列表是否包含指定元素。size():返回列表的大小。
示例:
List<String> list = new ArrayList<>();
list.add("Hello");
list.add("World");
list.add(1, "Java");
list.remove(0);
String element = list.get(0); // "Java"
list.set(0, "Python");
int index = list.indexOf("Java"); // 1
boolean contains = list.contains("Python"); // true
int size = list.size(); // 2
8 Map 接口下的增删改查方法:
put(key, value):将键值对添加到 Map 中。get(key):获取指定键对应的值。remove(key):移除指定键对应的键值对。containsKey(key):判断 Map 是否包含指定的键。containsValue(value):判断 Map 是否包含指定的值。size():返回 Map 中键值对的数量。
示例:
Map<String, Integer> map = new HashMap<>();
map.put("Apple", 1);
map.put("Banana", 2);
int value = map.get("Apple"); // 1
map.remove("Banana");
boolean containsKey = map.containsKey("Apple"); // true
boolean containsValue = map.containsValue(2); // false
int size = map.size(); // 1
HashMap 是一个无序的键值对集合,使用键值对进行存储和访问。常用的方法有:
put(key, value):将键值对添加到 HashMap 中。get(key):获取指定键对应的值。remove(key):移除指定键对应的键值对。containsKey(key):判断 HashMap 是否包含指定的键。containsValue(value):判断 HashMap 是否包含指定的值。size():返回 HashMap 中键值对的数量。
示例:
HashMap<String, Integer> map = new HashMap<>();
map.put("Apple", 1);
map.put("Banana", 2);
int value = map.get("Apple"); // 1
map.remove("Banana");
boolean containsKey = map.containsKey("Apple"); // true
boolean containsValue = map.containsValue(2); // false
int size = map.size(); // 1
TreeMap 是一个有序的键值对集合,根据键的自然顺序进行排序。常用的方法和 HashMap 相似。
LinkedHashMap 是一个有序的键值对集合,保持插入顺序。常用的方法和 HashMap 相似。
ConcurrentHashMap 是一个线程安全的键值对集合,支持并发访问。常用的方法和 HashMap 相似。
HashSet 是一个无序的集合,不允许包含重复元素。常用的方法有:
add(element):将元素添加到 HashSet 中。remove(element):移除指定元素。contains(element):判断 HashSet 是否包含指定元素。size():返回 HashSet 的大小。
示例:
HashSet<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.remove("Banana");
boolean contains = set.contains("Apple"); // true
int size = set.size(); // 1
TreeSet 是一个有序的集合,根据元素的自然顺序进行排序。常用的方法和 HashSet 相似。
9 其他常用集合方法:
Collections.sort(list):对列表进行升序排序。Collections.reverse(list):反转列表中的元素顺序。Collections.shuffle(list):随机打乱列表中的元素顺序。Collections.max(collection):返回集合中的最大元素。Collections.min(collection):返回集合中的最小元素。Collections.frequency(collection, element):返回集合中指定元素的出现次数。
示例:
List<Integer> list = new ArrayList<>();
list.add(5);
list.add(2);
list.add(8);
Collections.sort(list); // {2, 5, 8}
Collections.reverse(list); // {8, 5, 2}
Collections.shuffle(list); // {5, 8, 2}
int max = Collections.max(list); // 8
int min = Collections.min(list); // 2
int frequency = Collections.frequency(list, 5); // 1
希望以上信息对你有所帮助!内容持续补充更新中,如有感动,欢迎三连!