Java-操作总结

Java常用操作

Integer.SIZE; // 二进制位数
Integer.MIN_VALUE;// 整数的最小, 对应包装类都有
Integer.MAX_VALUE;// 整数的最大
boolean: 只有两个取值:true 和 false;默认值是 false;
char: char 类型是一个单一的 16 位 Unicode 字符;
byte: 8位、有符号的,以二进制补码表示的整数, [-128(-2^7), 127], 默认值是 0
short: 默认值是 0, 16 位、有符号的
int: 默认值是 0, 32位、有符号的
long: 默认值是 0L, 64 位、有符号的
float: 0.0f 单精度、32位
double: 浮点数的默认类型为 double 类型, 默认值是 0.0d
String: 默认null
整数的默认类型是 int, 小数默认是 double 类型浮点型在定义 float 类型时必须在数字后面跟上 F 或者 f。
更多
0. 输入
Scanner scan = new Scanner(System.in);
scan.hasNext();// 判断是否还有
String str1 = scan.next(); // 输入不接受空格后面内容
String str2 = scan.nextLine(); // 接受一行内容
scan.nextInt(); // int输入
scan.nextFloat(); // float输入

  1. 遍历
    for (int i : nums){}
  2. 字符串与整数
    char - '0'; // 字符转换为int
  3. 操作 Math
    Math.max()
    Math.min()
    Math.abs()
    Math.ceil() // 上取整
    Math.floor() // 下取整, 双精度浮点型
    Math.round() // 四舍五入
    Math.pow() // 第一个参数的第二个参数的平方
    Math.random() // 返回一个随机数[0,1)

String

length()
"hello" + "world"; +连接
"hello".concat("world"); concat 连接
char charAt(int index); //返回指定索引处的 char 值。
isEmpty() //判断字符串是否为空。
String trim() //返回字符串的副本,忽略前导空白和尾部空白。
String[] split(String regex) //根据给定正则表达式的匹配拆分此字符串。
more
* StringBuffer
append()
charAt(int index) //索引
reverse() //翻转
public String substring(int beginIndex)
public String substring(int beginIndex, int endIndex); // endIndex都是不包括的

List

Arrays.sort(nums); // 排序
List<List> result = new ArrayList<>(); // 构造list,这是一个二维list
new ArrayList<>(Arrays.asList(a, b, c)); // a, b, c 构造成ArrayList
Collections.max(Arrays.asList(Arrays.stream(nums).boxed().toArray(Integer[]::new))); // 返回int[] 数组最大值 python中只需要max(nums)

  • LinkedList(add, remove, peek)
    for (int i=0; i<list.size(); i++) {list.get(i);} // 遍历
    for (Integer integ:list) {} //遍历

Stack, Queue : Stack, LinkedList

Stack st = new Stack<>();
push(), pop(), peek()
Deque deq = new ArrayDeque<>();

  • LinkedList也可以作为Stack和queue 可以作为栈、队列或双端队列使用 : addFirst, addLast, removeFirst, removeLast, peekFirst(), peekLast()
    add, addFirst, addLast
    poll() 删除并返回第一个元素。
    get(int index) 返回指定位置的元素。
    getFirst() 返回第一个元素。
    getLast() 返回最后一个元素。
    栈方法 等效方法
    push(e) addFirst(e)
    pop() removeFirst()
    peek() peekFirst()
    isEmpty() //判断是否为空
    作为队列使用
    addLast(), add(), offer(e) //进队列,将元素加入队列末尾
    poll() //获取队列头的元素并移除
    peek() //获取队列的元素
    isEmpty() //判断是否为空
    栈与队列

Map : HashMap(put, get, containsKey)

Map<Integer, DoubleLinkedNode> hashMap = new HashMap<>();// HashMap
HashSet hashSet = new HashSet<>();// HashSet,存储单个元素,可用于检查是否存在

// 获取
getOrDefault(key,0);//查找键的值,没有返回默认值
get(key);
// 添加
add(key,val);
// 方法
containsKey(key);
containsValue(value);
// 遍历
for (Map.Entry<Integer, Integer> entry : hashMap.entrySet()){}

Set : HashSet(add)

Queue : LinkedList, PriorityQueue(add, poll)

  1. PriorityQueue 实现细节
    int[] 传递值,或者Entry传递值, 默认小顶堆
    PriorityQueue<Map.Entry<Integer, Integer>> queue = new PriorityQueue<>((o1, o2) -> o1.getValue() - o2.getValue());// 小顶堆
    // 大顶堆
    PriorityQueue<int[]> pq = new PriorityQueue<>(new Comparator<int[]>() {
    @Override
    public int compare(int[] o1, int[] o2) {
    return o2[1] - o1[1];
    }
    });
    //添加
    add(),offer()
    //获取
    poll()//删除堆顶并返回元素
    remove()//删除指定元素

迭代器

// 遍历
Iterator it = sites.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}

位运算 more

位运算可以大量减少运行开销,优化算法
&:按位与。
|:按位或。
~:按位非。
^:按位异或。
<<:左位移运算符。

:右位移运算符。

<<<:无符号右移运算符。
补码:将原码按位取反加1(负数,正数补码就是原码)

正则表达式

more

上一篇:使用昨天Asp.net直接保存文件到客户端 中的方法,经过我的反复测试,各式文档都运行完全正常。于是昨晚修改了现有代码,修改了下载方法,以解决一直困扰自己的窗口拦截问题。


下一篇:198. 打家劫舍