ArrayList
1.动态数组
2.插入有序
public static void main(String[] args) {
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(7);
arrayList.add(5);
arrayList.add(3);
System.out.println(arrayList);
System.out.println(arrayList.get(0));
arrayList.set(1, 100);
System.out.println(arrayList);
arrayList.remove(0);
System.out.println(arrayList.contains(7));
//排序,默认顺序
Collections.sort(arrayList);
System.out.println(arrayList);
//排序,自定义逆序
arrayList.sort(new Comparator<Integer>() {
@Override
public int compare(Integer num1,Integer num2){
return num2 - num1; //降序
}
});
System.out.println(arrayList);
}
HashMap
1.散列表,它存储的内容是键值对(key-value)映射
2.插入无序
HashMap<Integer, String> map = new HashMap<Integer, String>();
map.put(1,"a");
map.get(1);
map.remove(1);
map.size(); //大小
map.clear(); //删除所有键值对
//两数之和
public int[] twoSum(int[] nums, int target) {
Map<Integer,Integer> hashMap = new HashMap<Integer,Integer>();
for(int i=0;i<nums.length;i++){
if(hashMap.containsKey(target-nums[i])){
return new int[]{i,hashMap.get(target-nums[i])};
}
hashMap.put(nums[i],i);
}
return new int[0];
}
HashSet
1.插入无序
2.元素去重
public static void main(String[] args) {
HashSet<Integer> hashSet = new HashSet<>();
hashSet.add(1);
hashSet.add(3);
hashSet.add(2);
hashSet.add(4);
hashSet.add(2);
System.out.println(hashSet);
System.out.println(hashSet.contains(3));
}
Stack
先入后出
Stack stack=new Stack();isEmpty()push(E item)pop();
LinkedList
与ArrayList 相比,LinkedList 的增加和删除的操作效率更高,而查找和修改的操作效率较低
LinkedList 实现了 Queue 接口,可作为队列使用。
LinkedList 实现了 List 接口,可进行列表的相关操作。
LinkedList 实现了 Deque 接口,可作为队列使用。
add() addLast() | 链表末尾添加元素 |
addFirst() | 元素添加到头部 |
remove() removeFirst() | 删除并返回第一个元素 |
get() | 获取元素 |
StringBuilder
字符串相等用 equals() 不能用 ==
字符串是否为空 isEmpty()
StringBuilder是线程不安全的,它的执行效率比StriingBuffer要高
StringBuffer是线程安全的,它的执行效率比StringBuilder要低
StringBuilder str = new StringBuilder();
str.append();
str.isEmpty();
str.equals();
str.length(); 长度
String substring(int start) 返回子串;
String substring(int start,int end) 返回子串;
String toString() 返回value形成的字符串;
int lastIndexOf(String str) 返回str最后出现的位置;
int indexOf(String str) 返回str第一次出现的位置;
StringBuilder delete(int start,int end) 删除从start到end(不包含)之间的内容;
deleteCharAt(index) 删除对应位置数据
reverse 字符串反转
char转int
方法1:char a = 'c';String as = String.valueOf(a);int ai = Integer.parseInt(as);方法2:int bi = a - '0';
int转string
1、String.valueOf(int i)
2、Integer.toString(int i)
3、i + “”; //i 为 int类型,int+string型就是先将int型的i转为string然后跟上后面的空string。
三种方法效率排序为:
Integer.toString(int i) > String.valueOf(int i) > i+""
数组
Arrays.sort() 排序
Arrays.asList() 将多个元素合并为一个list数组
List<List<Integer>> res = new ArrayList<>();res.add(Arrays.asList(nums[i],nums[l],nums[r]));