java算法方法_总结算法题中一些常用的Java方法

String相关的

1. charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。

string.charAt(i); // i为索引, 索引范围为 0 到 length() - 1

2. length() 方法用于返回字符串的长度。空字符串的长度返回 0。

string.length();

3.将String字符串转化成char数组

char[] chars = string.toCharArray();

4. char数组转String

new String (charArray); // charArray => char[] charArray

栈相关

1.初始化

Stack> stack = new Stack();

2.测试堆栈是否为空

boolean isEmpty()

3.查看堆栈顶部的对象,但不从堆栈中移除它

Object peek()

4.移除堆栈顶部的对象,并作为此函数的值返回该对象

Object pop()

5.项压入堆栈顶部

Object push(Object element)

6.返回对象在堆栈中的位置,以 1 为基数

int search(Object element)

数组相关

1. 数组的长度

array.length

2. 数组的排序

Arrays.sort(array);

3. 二维int类型数组的排序按首个数字升序排序

Arrays.sort(array, (v1, v2) -> v1[0] - v2[0]);

// 当区间左端点相同的时候,按照右端点降序排序

Arrays.sort(intervals, (o1, o2) ->{if (o1[0] == o2[0]) {return o2[1] - o1[1];

}return o1[0] - o2[0];

});

4. 用于一维数组、二维数组的初始化或者填充 (例: 将数组array的数据填充为1)

Arrays.fill(array, 1);

5. 复制新数组,并指定长度 (例: 将数组array复制一个新数组, 并指定长度为11)

Arrays.copyOf(array, 11);

List相关

列表的尾部插入指定元素

list.add(Object o);

列表的尾部移除元素(一般用于dfs算法 进行回溯)

list.remove(list.size() - 1);

判断集合中是否存在这个元素

list.contains(Object o); // 返回true 或 false

集合的拷贝

使用List实现类的构造方法

List destList = new ArrayList(srcList);

将数组转为list

List names = Arrays.asList(new String[]{"zhangsan","li"});

集合排序

Collections.sort(list); // 返回值为void

注意: 一般dfs类型的算法, 集合类的用的比较多

// 一般常见的算法题中,需要对List list进行排序,在判断是否存在于List>res中//所以一般做法是:

// 如果满足条件

if(// 条件成立) {List tmp = new ArrayList(list);

Collections.sort(tmp);

if(!res.contains(tmp)) { // 判断结果集是否重复

res.add(tmp);

}else {

return;

}

}// 筛选候选节点

list.add(o);

dfs(...);

list.remove(list.size() - 1);

queue相关

这类主要是BFS算法使用较多:

初始化

Queue queue = new LinkedList();

添加元素

queue.offer(Object o);

删除队列中的第一个元素

queue.poll(Object o); // 返回队列的第一个元素

判断是否为空

queue.isEmpty();

获取队列的大小

queue.size();

Map相关

获取指定键的值

map.get(Object o);

添加一个映射

put(K key, V value)

Map是否包含指定的key使用containsKey方法

containsKey(Object key) 如果此映射包含指定键的映射关系,则返回 true

Map判断是否包含指定的value使用containsValue方法

containsValue(Object value) 如果此映射将一个或多个键映射到指定值,则返回 true

Map是否包含集合数据

isEmpty() 如果此映射未包含键-值映射关系,则返回 true

Map遍历

Map map = newHashMap();

map.put("zhangsan",1);

map.put("li",2);

map.put("wangwu",2);for (Map.Entrym: map.entrySet()) {

System.out.println("姓名: "+m.getKey()+" 编号: "+m.getValue());

}

目前LeetCode算法题中,常用的一些JAVA的方法先总结到这! 后续不断更新!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值