算法刷题细节点总结
Posted f91og
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法刷题细节点总结相关的知识,希望对你有一定的参考价值。
1. 关于比较器Comparator
Queue<Integer> pq=new PriorityQueue<Integer>(new Comparator<Integer>(){
public int compare(Integer a, Integer b){ // 这里要严格写成和上面的一样
return b-a;
}
});
原来上面的compare方法中参数类型写成了 int, 以为也能编译通过,结果不行,要严格和Comparator中的泛型一致。自定义了比较器后就可以在Collections和Arrays的sort方法对容器中的元素进行排序,默认是升序排序的。
2. 关于集合
(1) 如何遍历map?
可以参考这篇博文:https://www.cnblogs.com/imzhj/p/5981665.html
感觉最好记的方法是这个:
Map<String, String> map = new HashMap<String, String>();
for (Entry<String, String> entry : map.entrySet()) {
entry.getKey();
entry.getValue();
}
(2) set集合的增删改元素方法和List集合是一样的吗?remove方法的一个疑问
一样的,都是 add 和 remove 方法,只不过list的remove方法能按照indxex来删,而set只能按照Object来删。这里有一个长久以来的疑问是如果List集合中放入的是int型元素的话,如果此时使用remove方法,传入int的 话是按照索引来删除元素还是按照int的值来删除元素的呢?
测试结果是还是按照索引来删,如果使用 (Integer)3 这种方式将int包装为Integer的话就会按照值去删。
(3) set和list集合怎么和数组互转?
参考: https://blog.csdn.net/my_precious/article/details/53010232
(4) 关于PriorityQueue的用法
参考:https://blog.csdn.net/u013309870/article/details/71189189
很有用的数据结构,可以用它来实现堆。
3. 关于字符和字符串
(1) 相互转换
int转String直接加""即可,String转int需要用到Integer.parseInt()方法。
String转char数组直接调用toCharArray()方法,
(2) 快速逆转字符串
String reversed = new StringBuilder(s).reverse().toString()
以上是关于算法刷题细节点总结的主要内容,如果未能解决你的问题,请参考以下文章