java.lang包是java语言的核心,它提供了java中的基础类
java.lang.Integer
lang中的类不导包就可以使用
Integer.MAX_VALUE 获取int类型的最大值
Integer.MIN_VALUE 获取int类型的最小值
比较大小
Math.max(value1, value2);
默认产生大于等于0.0且小于1.0之间的随机double型随机数
Math.random()
求解幂次的结果
Math.pow(2, 3),注意返回的是double类型,如果需要int类型的结果,应该强转
(int)Math.pow(2,3)
hashSet
HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。
HashSet 允许有 null 值。
HashSet 是无序的,即不会记录插入的顺序。
HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。
HashSet 实现了 Set 接口。
使用 add() 方法添加元素,添加成功返回true,表示集合中没有相同的元素,添加失败返回false,表示添加的元素包含在集合中。
使用contains() 方法来判断元素是否存在于集合当中
使用 remove() 方法来删除集合中的元素
使用 clear 方法删除集合中所有元素
创建实例
Set< type1 > set = new HashSet<>();
Set<Character> set = new HashSet<>();
HashMap
Map.getOrDefault(Object key, V defaultValue)方法的作用是:
当Map集合中存在key时,就使用这个key值;
不存在返回defaultValue。
Deque(double ended queue(双端队列))
普通队列(一端进另一端出):
Queue queue = new LinkedList()
Deque deque = new LinkedList()
双端队列(两端都可进出)
Deque deque = new LinkedList()
堆栈(后进先出)
Deque deque = new LinkedList()
java堆栈Stack类已经过时,Java官方推荐使用Deque替代Stack使用。Deque堆栈操作方法:push()、pop()、peek()。
构造方法
java中使用 new关键字加上构造方法,来创建一个对象。
因此在调用构造方法时应该加上一个关键字 new;
list.add(ListNode(1)); //错误
list.add(new ListNode(1)); //正确
注意:使用默认构造函数得到的对象并不为空
ListNode head = new ListNode(); // 非空
ListNode head = null; // null
希望初始值为空时不应该使用无参构造创建对象而应该直接赋值为空。
直接赋值只是拷贝了对象的引用地址,并没有在内存中生成新的对象,赋值之后两个变量指向同一个内存空间。
Java 字符串String
使用String.toCharArray()将字符串转换为字符数组。
使用String.charAt(int index) 可以取得对应索引的字符。该方法每次都会检查下标是否越界。
String string = "abcdefg";
char[] chars2 = string.toCharArray();
System.out.println(chars2[1]); //b
System.out.println(string.charAt(1)); //b
截取子串
String ans = s.substring(start,end);
Java StringBuffer 和StringBuilder
- StringBuffer对象则代表一个字符序列可变的字符串 通过StringBuffer提供的append()、insert()、reverse()、setCharAt()、deleteCharAt()、setLength()等方法可以改变这个字符串对象的字符序列。调用toString()方法可将其转换为一个String对象。
StringBuilder stringBuilder = new StringBuilder("a");
System.out.println(stringBuilder);
stringBuilder.append('b');
stringBuilder.append('c');
stringBuilder.append("de");
System.out.println(stringBuilder);
stringBuilder.deleteCharAt(2);
System.out.println(stringBuilder);
System.out.println(stringBuilder.charAt(0));
输出结果
a
abcde
abde
a
- StringBuilder类也代表可变字符串对象。StringBuilder和StringBuffer基本相似。不同的是:StringBuffer是线程安全的,性能稍低,其所有的方法都加有,synchronized关键字。
java.util.Arrays
// 对数组按照升序排序
Arrays.sort(int[] a)
void Array.sort(Object[] array)
双重列表
List<List<Integer>> list = new ArrayList<>();
List<List<Integer>> list = new ArrayList<List<Integer>>();
java.util.Collections
Collections.swap(List<?> list, int i, int j)
交换列表中位置i和位置j的值
System.out.println(path);
Collections.swap(path,1,2);
System.out.println(path);
输出结果
[1, 2, 3]
[1, 3, 2]
设置时间输出格式
DateFormat format = new SimpleDateFormat("YYYY:MM:dd HH:mm:ss");
System.out.println(format.format(new Date()));
输出结果
2021:05:13 16:10:26
java 基本/内置数据类型
byte --------->Byte ------------------>32位
short ---------->Short
int ---------->Integer
long ---------->Long
float ---------->Float
double ---------->Double
boolean ----------->Boolean
char ------------>Character
位运算
x=x & (x−1)该运算将 xx的二进制表示的最后一个 1 变成 0
java数组的初始化
- 数组声明
- int[] array
- int array[] - 数组初始化
//方式一
int[] array = new[3];
array = {1,2,3};
//方式二
int[] array = new int[] {1,2,3};