各种方法的诺亚方舟!!!

158 阅读2分钟

字符串、数组、栈、队列、接口及其实现类

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

希望以上信息对你有所帮助!内容持续补充更新中,如有感动,欢迎三连!