JAVA基础函数备忘录

数组Array

  • 数组定义
int[] nums = new int[10];//自定义长度
int[] nums = {{1,2},{3,4}};//完全自定义
  • 数组长度n
int n = nums.length;
  • 复制数组
//左闭右开,且不局限于int类,还可以是char[], boolean[]
int[] newNums = Arrays.copyOfRange(nums, 0, n);
  • 数组排序
Arrays.sort(nums);//从小到大进行排序

字符串String

  • 字符串定义
String str1 = “abc”;//直接赋值
String str2 = new String();//空字符串

//传递字符数组,new字符串对象
char[] chs = {'a','b','c'}; 
String str3 = new String(chs);
String str4 = new String(chs, 0, n);
  • 字符串长度
int n = str.length();
  • 获取指定字符
char c = str.charAt(index);
  • 子字符串
String subStr = str.substring(index1, index2);//左闭右开
  • 判断两个字符串内容是否相同
boolean falg = str1.equals(str2);
  • 字符串转数字
Integer num = Integer.parseInt(str);//会对str数组进行合并
  • 数字转字符串
String str = String.valueOf(num);

列表List

  • 列表定义
List<Integer> list = new ArrayList<>();//Integer可以更换其他类型,如char
  • 二维列表:列表包含列表
List<List<Integer>> list = new ArrayList<>();
List<Integer> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
list.add(list1);
list.add(list2);
  • 添加、删除元素
list.add(x);
list.add(index, x);//在指定位置添加,原本该位置的元素向后移动一位
x = list.remove(index);//删除并返回该位置的元素
  • 获取元素
x = list.get(index);//返回指定位置的元素
  • 更新元素
list.set(index, x);
  • 列表长度
int n = list.size();
  • 列表是否包含某个元素
list.contains(x);

链表Deque

  • Deque定义
Deque<Object> deque = new LinkedList<>();
  • 判断是否为空
boolean flag = deque.isEmpty();
  • 头尾增删元素
deque.addFirst(x);
deque.addLast(x);
deque.removeFirst();
deque.removeLast();
  • 获取元素
x = deque.getFirst();
x = deque.getLast();

哈希表Map

  • Map定义
Map<Object, Object> map = new HashMap<>();
  • 放入/获取/移除键值对
map.put(key, value);

x = map.get(key);
x = map.getOrDefault(key, defaultValue);
map.put(key, map.getOrDefault(key, 0) + 1);//常用方法

x = map.remove(key);//没有该key就返回null
boolean flag = map.remove(key, value);
  • Map是否包含键值
boolean flag = map.containsKey(key);
boolean flag = map.containsValue(value);
  • 遍历Map
// forEach
final boolean[] ans = {true}
map.forEach((key, value) -> {
	if (value > 0) ans[0] = false;
});
return ans[0];

// Entry
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
	if (entry.getValue() > 0) return false;
	// entry.getKey()
}

StringBuilder

  • StringBuilder定义
StringBuilder sb = new StringBuilder();
StringBuilder sb = new StringBuilder(str);//String转StringBuilder
  • StringBuilder长度
int n = sb.length();
  • 增加字符串
sb.append("newStr");
  • 替换/插入/删除字符
sb.setCharAt(index, 'x');
sb.insert(index, 'x');//在index位置之前插入
sb.delete(index1, index2);//左闭右开
  • StringBuilder转String
String str = sb.toString();

模板

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int a = in.nextInt();
            
        }
        String s = in.next();
        System.out.println(a);
        in.close();
    }
}

链表定义

public class ListNode {
	int val;
	ListNode next;
	
	public ListNode() {
	}
	
	public ListNode(int val) {
		this.val = val;
	}
	
	public ListNode(int val, ListNode next) {
		this.val = val;
		this.next = next;
	}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值