在Integer这个包装类里面有一个toBinaryString
的方法,作用是:以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式
(类似还有toHexSrting()方法和toOctalString()方法)。
5851. 找出不同的二进制字符串
public String substring(int beginIndex, int endIndex)
substring() 方法返回字符串的子字符串。
beginIndex – 起始索引(包括), 索引从 0 开始。
endIndex – 结束索引(不包括)。
class Solution {
public String findDifferentBinaryString(String[] nums) {
HashSet<String> set = new HashSet<>();
for (String num : nums) {
set.add(num);
}
for (int i = 0;; i++) {
if (!set.contains(Integer.toBinaryString(1 << nums.length | i).substring(1))) {
return Integer.toBinaryString(1 << nums.length | i).substring(1);
}
}
}
}
boolean,int,long,double是基本的数据类型,
Boolean,Integer,Long,Double他们是包装类,也就是说他们都是类,都有自己的行为和数据。
JAVA所有的类都默认继承字类Object(即包java.lang.object),包括你自己创建的类。
Boolean,Integer,Long,Double是java.util包中的类,它们是boolean,int,long,double相对应的包装类用以产生对应的对象。
boolean,int,long,double称基本类型,创建后置于stack(堆栈)中,存取速度很快,而其他引用对象创建后置于heap(堆)中,速度没有堆栈快。创建方法不同:
int i = 1;//此创建了一个基本类型的int对象。
Integer integer = new Integer();//此创建了一个Integer包装类的引用,在内存中的位置不同。
类似的还有char和Character、float和Float、short和Short、byte和Byte。你要记得后者用于产生对象的引用,而前者直接产生1的基本类型的数据。