JAVA常用类中的方法(持续更新)

Integer类

/**
 * 十进制转二进制
 */
String str = Integer.toBinaryString(n);

String类

String str = "hello world";


/**
 * 获取下标对应的字符
 */
char firstChar = str.charAt(0);


/**
 * 将char[] 转为 Stirng
 */
char[] chars = new char[]{'1','2'};
String str = String.valueOf(chars);


/**
 * String 转 字符Array
 */
char[] charArray = str.toCharArray();


/**
 * 字符串替换(正则表达式,部分字符需要\\转义) 如  '('   ')'    '.'
 */
str = str.replaceAll("\\(\\)", "hello");


/**
 * 字符串截取 包左  不包右
 */
String str1 = str.substring(1);
String str2 = str.substring(0, 1);


/**
 * 字符串分割成数组
 */
str.split(".");


/**
 * 去除首位空格
 */
str = str.trim();


/**
 * Pattern.quote() 将正则表达式转为字面量(非正则匹配)
 * 或者 \\. 来转义
 */
str.split(Pattern.quote("."));

List类

/**
 * list 转 array
 */
List<Integer> list = new ArrayList<>();
Object[] array = idxList.toArray();

Map类

/**
 * entrySet 遍历map
 */
for (Map.Entry entry : map.entrySet()) {

}


/**
 * treeMap  根据key排序的map
 * Character::compareTo   升序
 * Comparator.reverseOrder()  降序排序
 */
Map<Character, Integer> map1 = new TreeMap<>(Character::compareTo);
Map<Character, Integer> map2 = new TreeMap<>(Comparator.reverseOrder());



/**
 * compute: key不存在就插入, value更新为返回值(null则删除)
 *
 * computeIfPresent: key存在 value新为返回值(null则删除)
 *
 * computeIfAbsent: key不存在 执行后面的方法
 */
map.compute("a", (k, v) -> v == null ? 1 : 2);
map.computeIfPresent("a", (k, v) -> ++v);
map.computeIfAbsent("b", k -> 1);

Set

/**
 * 复制一个set
 */
Set<Integer> curSet = new HashSet<>(set);

StringBuffer类

/**
 * 字符串翻转
 */
String str = new StringBuffer(words[i]).reverse().toString();

Arrays类

/**
 * 拷贝数组
 */
int[][] arr = new int[2][3];
int[][] res = arr.clone();


/**
 * 获取最大值
 */
int[] nums = new int[]{1,2,3};
int max = Arrays.stream(nums).max().getAsInt();

/**
 * 排序(降序)
 */
Arrays.sort(nums);



/**
 *  array转stream流, char[] 无法转换
 */
Arrays.stream(nums)

Stream流

/**
 * array 初始化
 */
int[] arr = Stream.of(1,3).mapToInt(Integer::intValue).toArray();


/**
 * list初始化
 */
List<Integer> list = Stream.of(nums[0]).collect(Collectors.toList());


/**
 * list转int[]
 * Integer::intValue  将包装类转为基本数据类型
 */
List<Integer> list = new ArrayList<>();
int[] array = list.stream().mapToInt(Integer::intValue).toArray();



/**
 * int[]  转 set
 * boxed(): 将基本数据类型转为包装类
 */
int[] array = new int[10];
Set<Integer> set = Arrays.stream(array).boxed().collect(Collectors.toSet());


/**
 * sum:累加(需要是数值类型)
 * mapToInt: 转为 int值 
 */
List<Integer> nums = new ArrayList<>();
nums.stream().mapToInt(Integer::intValue).sum();


/**
 * max 获取最大值
 * getAsInt() : OptionalInt转int
 */
int max = Arrays.stream(nums).max().getAsInt();


/**
 * stream流遍历map
 */
map.forEach((key, value) -> {

});


/**
 * 字符串list元素拼接
 */
list.stream().collect(Collectors.joining(" "));

Objects类

/**
 * 判断引用对象是否为null
 */
Objects.isNull(root);

原子类

优势
粒度更细:原子变量可以把竞争范围缩小到变量级别,通常锁的粒度要大于原子变量的粒度
效率更高,除了高度竞争的情况

/**
 * stream中foreach是多线程的,需要修改外部数据需要用原子类
 * 原子类中的原子操作: 操作不可中断,多线程的情况下也可以保证
 * 
 * addAndGet:相加
 */
AtomicInteger sum = new AtomicInteger();
Arrays.stream(nums).forEach(item -> {
	sum.addAndGet(item);
});



/**
 * 自增1(++)
 */
sum.getAndIncrement();

StringUtils

包 :org.apache.commons.lang3.StringUtils

/**
 *  字符串(左/右)补齐
 */
String str = "abc";
str = StringUtils.leftPad(str, 6, "0");
str = StringUtils.rightPad(str, 6, "0");

Queue

队列,先进先出

Queue<Integer> queue = new LinkedList<>();


/**
 * 入队
 */
queue.add(t);


/**
 * 返回队头
 */
queue.peek();


/**
 * 返回队头并出队
 */
queue.remove()

Stack

先进后出

Stack<Integer> stack = new Stack<>();

/**
 * 入栈
 */
stack.push(1);

/**
 * 出栈
 */
stack.pop();

/**
 * 查看栈顶元素
 */
stack.peek();

Math

/**
 * 向下取整
 */
double num1 = Math.floor(1.55);


/**
 * 向上取整
 */
double num2 = Math.ceil(1.55);


/**
 * 四舍五入取整
 */
double num3 = Math.round(1.55);

Collections

/**
 * 将list元素反转
 */
Collections.reverse(list);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值