Java算法题常用函数 [复制链接]
发表于 2025-11-13 09:44:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Java算法题常用函数

String 字符串


  • charAt(int index)方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。
  • length() 方法用于返回字符串的长度。空字符串的长度返回 0。
  • 将String字符串转化成char数组
    char[] chars = string.toCharArray();
  • char数组转String
    new String (charArray); // charArray => char[] charArray
  • 返回一个新字符串,它是此字符串的一个子字符串
    String sub = str.substring(int start, int end)
  • 指定字符在此字符串中第一次出现处的索引
    str.indexOf(int ch)
  • 删除字符串前后的空缺符
    str.trim()
StringBuffer/StringBuilder


  • 在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身举行利用,而不是天生新的对象,以是假如须要对字符串举行修改保举使用 StringBuffer。
  • StringBuilder 类在 Java 5 中被提出,两者最大差别在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
  • 由于 StringBuilder 相较于 StringBuffer 有速率上风,以是多数环境下发起使用 StringBuilder 类。

  • 初始化
    StringBuilder sb = new StringBuilder(length)
  • 返回长度(字符数)
    sb.length()
  • 将指定的字符串追加到此字符序列
    sb.append(String s)
  • 将此字符序列用其反转情势取代
    sb.reverse()
  • 返回一个新的 String,它包罗此序列当前所包罗的字符子序列
    sb.substring(int start, int end)
  • 转换成String
    String str = sb.toString();
Stack 栈


  • 初始化
    Stack stack = new Stack();
  • 判断堆栈是否为空
    stack.isEmpty()
  • 查察堆栈顶部的对象,但不从堆栈中移除它
    stack.peek()
  • 移除堆栈顶部的对象,并作为此函数的值返回该对象
    stack.pop()
  • 元素压入堆栈顶部
    stack.push()
  • 返回对象在堆栈中的位置,以 1 为基数
    int pos = stack.search()
Array 数组


  • 初始化长度为size的数组
    int[] array = new int[size]
  • 数组长度
    array.length
  • 数组的排序
    Arrays.sort(array)
  • 二维int范例数组的排序按首个数字升序排序 (lambda表达式写法)
    Arrays.sort(array, (v1, v2) -> v1[0] - v2[0])
    ps: 匿名内部类写法
    1. Arrays.sort(array, new Comparator<int[]>() {
    2.     @Override
    3.     public int compare(int[] v1, int[] v2) {
    4.         // 与 Lambda 表达式逻辑完全一致
    5.         return v1[0] - v2[0];
    6.     }
    7. });
    复制代码
  • 当区间左端点雷同的时间,按照右端点降序排序
    1. Arrays.sort(intervals, (o1, o2) -> {
    2.     if(o1[0] == o2[0]){
    3.         return o1[1] - o2[1];
    4.     }
    5.     return o2[0] - o1[0];
    6. });
    复制代码
  • 用于一维数组的初始化大概添补
    Arrays.fill(array, 1);
  • 复制新数组,并指定长度 (例: 将数组array复制一个新数组, 并指定长度为length)
    int[] copy = Arrays.copyOf(array, length)
List 列表


  • 以下环境使用 ArrayList :

    • 频仍访问列表中的某一个元素(随机访问)。
    • 只须要在列表末端举行添加和删除元素利用。

  • 以下环境使用 LinkedList :

    • 你须要通过循环迭代来访问列表中的某些元素。
    • 须要频仍的在列表开头、中央、末端等位置举行添加删除元素利用。


  • 初始化
    1. List<T> list = new LinkedList<>();
    2. List<T> list = new ArrayList<>();
    复制代码
  • 列表的尾部插入指定元素
    list.add(Object o);
  • 列表的尾部移除元素(一样平常用于dfs算法 举行回溯)
    list.remove(list.size() - 1); //删除末了一个元素
  • 判断聚集中是否存在这个元素
    list.contains(Object o); // 返回true 或 false
  • 将数组转为List
    List names = Arrays.asList(new String[]{"zhangsan","li"});

    • List转为数组
      T[] array = list.toArray();

  • 聚集排序
    Collections.sort(list); // 返回值为void
Queue 队列


  • 初始化
    Queue queue = new LinkedList()
  • 添加元素
    queue.offer(Object o);
  • 删除队列中的第一个元素
    queue.poll(Object o);     // 返回队列的第一个元素
  • 判断是否为空
    queue.isEmpty();
  • 获取队列的巨细
    queue.size();
PriorityQueue 优先队列


  • 优先级队列并不是队列中全部的元素都是按照优先级排放的,只能包管出队序次是按照优先级举行的

  • 初始化
    1. Queue<Integer> queue = new PriorityQueue<>((a, b) -> b - a);
    复制代码
Map/HashMap


  • Map是接口,HashMap是详细实现
  • HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速率,最多答应一条纪录的键为 null,不支持线程同步。

  • 初始化
    1. Map<T, T> map = new HashMap();
    复制代码
  • 获取指定键的值
    map.get(Object o);
  • 添加一个映射
    map.put(K key, V value)
  • 是否包罗指定的key
    containsKey(Object key) \\假云云映射包罗指定键的映射关系,则返回 true
  • 是否包罗指定的value
    containsValue(Object value) \\假云云映射将一个或多个键映射到指定值,则返回 true
  • Map遍历
    1. Map<T, T> map = new HashMap();map.put("zhangsan",1);map.put("li",2);map.put("wangwu",2);for (Map.Entry m: map.entrySet()) {    System.out.println("姓名: "+m.getKey()+" 编号: "+m.getValue());}
    复制代码
HashSet 聚集


  • HashSet 基于  HashMap 来实现的,是一个不答应有重复元素的聚集。
  • HashSet 答应有 null 值。

  • 初始化
    HashSet set = new HashSet();
  • 添加元素
    set.add(Object o);
  • 判断元素是否存在
    set.contains(Object o);
  • 删除元素
    set.remove(Object o);\
  • 盘算元素数量
    set.size()
  • 迭代
    1. public class RunoobTest {
    2.     public static void main(String[] args) {
    3.     HashSet<String> sites = new HashSet<String>();
    4.         sites.add("Google");
    5.         sites.add("Runoob");
    6.         sites.add("Runoob");     // 重复的元素不会被添加
    7.         for (String i : sites) {
    8.             System.out.println(i);
    9.         }
    10.     }
    11. }
    复制代码

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表