1. charAt() 方法用于返回字符串指定索引处的字符。索引范围为从 0 到 length() - 1。
map.getOrDefault(num, 0) :如果map存在num这个key,则返回num对应的value,否则返回0.
Arrays.sort(nums); 数组排序
Arrays.asList("a","b","c");;该方法是将数组转化成List集合的方法。
s.toCharArray();将字符串中的字符转换为字符数组.
new String(ch) 将数组转化为字符串。
str.trim().split(" ");//将字符串先去掉头尾的空格,再按照“ ”分割。
Arrays.toString(strIn) 数组转字符串
2. 求字符串长度 s.length();
求数组长度:s.length;
集合长度:size()
3.集合
1.总体结构:
接口:Collection/List/Set/Map
实现类:Arraylist/LinkedList/HashSet/TreeSet/HashMap/TreeMap
2.Collection 集合
3.List集合
-
List集合的概述
-
有序集合,这里的有序指的是存取顺序
-
用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素
-
与Set集合不同,列表通常允许重复的元素
-
-
List集合的特点
-
存取有序
-
可以重复
-
有索引
-
List集合的实现类
-
ArrayList集合
底层是数组结构实现,查询快、增删慢
-
LinkedList集合
底层是链表结构实现,查询慢、增删快
-
LinkedList集合的特有功能
3.创建hashset(集合):
Set<Integer> set1 = new HashSet<>()
set1.add(i)//添加元素
if (set1.contains(i)) //判断是否包含i
set.size() #hashset的大小
4.创建比较
//List
List<String> list = new ArrayList<>();
//二维数组
List<List<Integer>> result = new ArrayList<>();
//二维数组添加元素
result.add(Arrays.asList(nums[i], nums[left], nums[right]))
//LinkedList
LinkedList<String> list = new LinkedList<>();
//Set
Set<String> set = new TreeSet<>();
//TreeSet
TreeSet<Integer> ts = new TreeSet<Integer>();
//HashSet
HashSet<String> set = new HashSet<String>();
//Map
Map<String,String> map = new HashMap<String,String>();
//HashMap
HashMap<Student, String> hm = new HashMap<Student, String>()
//TreeMap
TreeMap<Student,String> tm = new TreeMap<>();
5.遍历比较
List
普通for循环
//size方法跟get方法还有循环结合的方式,利用索引获取到集合中的每一个元素
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
System.out.println(s);
}
Set
//Set集合是没有索引的,所以不能使用通过索引获取元素的方法
不能用for (int i = 0; i < set.size(); i++) {
//
// }
for (String s : set) {
System.out.println(s);
}
TreeSet
for(Integer i : ts) {
System.out.println(i);
}
HashSet
for(String s : set) {
System.out.println(s);
}
Map
方法一:
//获取所有键的集合。用keySet()方法实现
Set<String> keySet = map.keySet();
//遍历键的集合,获取到每一个键。用增强for实现
for (String key : keySet) {
//根据键去找值。用get(Object key)方法实现
String value = map.get(key);
System.out.println(key + "," + value);
}
方法二:
//获取所有键值对对象的集合
Set<Map.Entry<String, String>> entrySet = map.entrySet();
//遍历键值对对象的集合,得到每一个键值对对象
for (Map.Entry<String, String> me : entrySet) {
//根据键值对对象获取键和值
String key = me.getKey();
String value = me.getValue();
System.out.println(key + "," + value);
}
HashMap
//遍历集合
Set<Student> keySet = hm.keySet();
for (Student key : keySet) {
String value = hm.get(key);
System.out.println(key.getName() + "," + key.getAge() + "," + value);
}
6.字符串操作
-
s.erase(pos,n);
删除从pos开始的n个字符,比如erase(0,1)就是删除第一个字符 -
字符串长度 s.length();
6.类型转换
万能法则
import java.util.Scanner;
public class myScanner {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
int a=1;
String b;
char c;
b=String.valueOf(a);//int转字符串
a=Integer.valueOf(b);//字符串转int
c=b.charAt(0);//字符串转字符
b=String.valueOf(c);//字符转字符串
//字符和int的转换 只需要用过字符串即可。
}
}
6.1数字、字符串相互转换
// 数字转字符串 method1
int number = 5;
String str = String.valueOf(number);
System.out.println(str);
// 数字转字符串 method2
int number = 5;
Integer itr = number; //int装箱为对象,再调用对象的toString方法
String str = itr.toString(); //或者直接 String str = Integer.toString(number);
System.out.println(str);
// 数字转字符串 method3
int number = 5;
String str = number + "";
System.out.println(str);
// 字符串转数字
String str = "123";
int number = Integer.parseInt(str);
System.out.println(number);
6.2 字符、字符串相互转换
//字符转字符串 method 1
char ch = '5';
String str = String.valueOf(ch);
System.out.println(str);
//字符转字符串 method 2
char ch = '5';
String str = ch + "";
System.out.println(str);
// 字符串转字符
// 其实这里也算不上转换了,只是获取对应位置上字符
String str = "123";
char ch = str.charAt(0); //这里获取到的字符为1
System.out.println(ch);
6.3 数字、字符相互转换
// 数字转字符
// 不能直接转换,如下图。因此需借助数字转字符串。
// 首先将数字转为字符串,再获取字符
int number = 5; //注意这里数字只能是个位数并且不能为负
String temp = Integer.toString(number);
char ch = temp.charAt(0);
System.out.println("数字转字符:"+ch);
// 字符转数字
// 先把字符转为字符串,再转换为数字
char ch = '5';
String temp = String.valueOf(ch);
int a = Integer.parseInt(temp);
System.out.println(a);
//或者
int a = ch - '0';
6.4 字符数组转字符串
String newStr = new String(charArray, 0, charArray.length);