前言
由于最近在学Java,所以由c++转到Java刷算法题,虽然整体上变化不大,但是一些常用的API还是要重新开始的,没了好用的STL,我只能拥抱Java的集合了。话不多说开始整理,随用随补充。
正文
Map
注意,map中只能存储引用类型,不能存储基本数据类型
常用方法
对于哈希表,我们常用的实现类是HashMap,下面是我们会经常用到的几个方法。
//创建
Map<String,Integer> map = new HashMap<>();
//加入元素
map.push(key,value);
//拿到元素
map.get(key);
//拿到键为key的值,如果不存在返回默认值0
map.getOrDefault(key,0);
//取大小
map.size();
//清空
map.clear();
//判空
map.isEmpty();
//移除某个键值对
map.remove();
哈希表的遍历操作
//第一种、forEach循环
for(Map.Entry<String,Integer> e : map.entrySet()){
entry.getKey();
entry.getValue();
}
//第二种、遍历键和值
for(String key : map.keySet())
for(Integer value : map.values())
String
常用方法
和c++不同的一点是,不能用s[i],只能用s.charAt(i)
//取出str中下标从[i,j)的String,注意左闭右开
str.substring(i,j);
//将String转成字符数组
str.toArray();
//排序操作
char[] c=str.toArray();
Arrays.sort(c);//Arrays是一个工具类
String newStr=new String(c);
遍历String
public static void main(String[] args) {
String str = "keep walking!!!";
//方法一
char[] charArray = str.toCharArray();
for (char i:charArray){
System.out.println(i);
}
// 方法二
for (int i = 0; i < str.length(); i++) {
System.out.println(str.charAt(i));
}
//方法三
for (int i = 0; i < str.length(); i++) {
System.out.println(str.substring(i, i + 1));
}
}
注意对于第二种方法,没办法foreach,所以第一种才转成了字符数组
Arrays类
结语
本篇文章随用随整理,目前还不全面,后续会不断补充。