注:博主主要刷题语言是python,这里为了方便日后学习,对其它语言进行积累。

目录:

1、 数据结构
2、 C++,java,python横向对比

数据结构

  1. Arrays
  2. Map
  3. Math
  4. String
  5. List
  6. Vector
  7. Queue
  8. Set
  9. Stack

Arrays用法:
3. Arrays.copyOf(array, length) 复制算法
4. Arrays.sort(double[]) 升序排列
5. Arrays.asList(arr).contains() 判断数组是否包含某个元素
6.

Map用法:
7. Map<T, T> map = new HashMap<
8. Map.get(key):获取值
9. Map.getOrDefault(Object key, V defaultValue):相当于python中的setdefault
10. Map.put(key, value):添加键值对
11. Map.keySet():map中所有key值集合

Math用法:
12. Math.max(Array) 获取最大值
13. Math.abs() 获取绝对值
10.Math.pow() 获取指数

String:

  1. Integer.parseInt(str):字符串转数字
  2. str.length():字符串长度
  3. str.charAt(i):获取字符串第i个字符
  4. str1.compareToIgnoreCase(str2):忽略大小的字符串比较
  5. str1.compareTo(str2):忽略大小的字符串比较
  6. str.equals(String ostr):判断两个字符串是否相等
  7. str.indexOf(ch):查找字符/字符串出现的位置
  8. str.substring(beginIndex, endIndex)
  9. str.split(正则表达式):拆分结果保存到字符串数组中
  10. str1.concat(str2):将str1和str2合并
  11. str.toLowerCase():将字符串全部转化为小写
  12. str.toUpperCase():将字符全部转化为大写
  13. str.trim():忽略前导空格和尾部空格
  14. str.replace(lodeChar, newChar)
  15. str.split() :返回值为字符串数组
  16. str.toCharArray()

StringBuilder:
append(参数):追加内容到StringBuilder末尾
insert(位置,参数):将内容插入指定位置
toString:StringBuilder转化为String
int length:长度

List:

  1. List person=new ArrayList<>(): 多用于遍历寻找
  2. LinkedList person= new LinkedList(); 多用于插入删除
  3. add(obj):添加元素
  4. remove(index/obj):删除元素
  5. get(index):获取元素
  6. size:获取长度
  7. set(index, target):修改索引处元素值
  8. Collections.sort(List<> l)

Vector

  1. Vector add(int index, Object element) :指定位置加入
  2. add(Object o) :加到末尾
  3. addAll(Collection c):按照collection迭代顺序加入
  4. int capacity():返回当前容量
  5. void clear():清除所有元素
  6. clone():克隆一个副本
  7. elementAt(int index):返回指定索引处的组件。
  8. Object get(int index) :返回向量中指定位置的元素。
  9. boolean isEmpty()

Queue

  1. add 增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常
  2. remove 移除并返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常
  3. element 返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常
  4. offer 添加一个元素并返回true 如果队列已满,则返回false
  5. poll 移除并返问队列头部的元素 如果队列为空,则返回null
  6. peek 返回队列头部的元素 如果队列为空,则返回null
  7. put 添加一个元素 如果队列满,则阻塞
  8. take 移除并返回队列头部的元素 如果队列为空,则阻塞

Set

  1. Set seen = new HashSet();
  2. Set.add(): 添加元素
  3. Set.contains(value):判断集合是否包含value

Stack

  1. boolean empty()
  2. Object peek( )
  3. Object pop( )
  4. Object push(Object element)
  5. int search(Object element)

其它:

  1. String.valueOf(n).toCharArray():数字转字符数组
  2. PriorityQueue pq = new PriorityQueue((k1, k2) -> grid[k1 / N][k1 % N] - grid[k2/N][k2%N]);

横向对比

结构定义:

java 刷题代码 java刷题常用函数_Math


Array

java 刷题代码 java刷题常用函数_ci_02


DynamicArray

java 刷题代码 java刷题常用函数_Math_03


HashTable

java 刷题代码 java刷题常用函数_ci_04


Priority queue

java 刷题代码 java刷题常用函数_java 刷题代码_05

容器转换

java 刷题代码 java刷题常用函数_ci_06


java 刷题代码 java刷题常用函数_ci_07

C++:
String:
字符串长度:

str.length()
 string[] s = str.Split(“regex”)

JAVA输入输出:

Scanner cin = new Scanner(new BufferedInputStream(System.in));
 int n = cin.nextInt();
 String s = cin.next();
 double t = cin.nextDouble();
 String s = cin.nextLine();


判断是否有下一个输入可以用 cin.hasNext() 或 cin.hasNextInt() 或 cin.hasNextDouble()
输出一般可以直接用 System.out.print() 和 System.out.println(),前者不输出换行,而后者输出。
注:
C++可以对创建的字符串进行内部修改,Java和Python不可以
Java 直接赋值String对象不会创建重复对象,而通过new方式会重复创建相同的字符串
JAVA使用StringBuilder完成字符串拼接效率更高