java
int a=3;
Integer x=a;
Integer y=a;
对于基本数据类型到对象的autoBoxing ,当a的取值很小的时候,因为java会存储对应的对象,所以当使用x==y判断时,是true,但是当a大于127时,在赋值x,y时他们会
被autoboxing到不同的对象,所以x==y 是false
LinkedList<Integer> l1=new LinkedList<>();l1.addFirst(); List没有这个接口
队列Queue<Integer> queue=new LinkedList<>();是受限的LinkedList; poll()
String.parseInt("123');
List l1 元素修改 l1.set(pos,value);
移位>>的优先级高于 按位&,
== 的优先级也高于按位&
String s1="hello world";
s1=s1.trim();
s1.lastIndexOf(char c);
String []arr=s1.split("\\s+"); 按whitespace 分隔,需要加上上一行,否则开头的空格会留下来。
split 当分隔符是.需要去转义split("\\.")
获得一个数组的一部分
int[] newArray = Arrays.copyOfRange(oldArray, startIndex, endIndex);
定义排序函数为String 数组排序
Arrays.sort(arr,new Comparator<String>(){
public int compare(String o1,String o2){
int len1=o1.length(),len2=o2.length();
int i=0;
while(true){
while(i<len1&&i<len2) {
char c1=o1.charAt(i);
char c2=o2.charAt(i);
if(c1<c2 ) return 1;
if(c1>c2) return -1;
i++;}
if(len1==len2) return 0;
else if(len1<len2) {o2=o2.substring(i,len2);len2-=i;}
else {o1=o1.substring(i,len1);len1-=i;}
i=0;}
}
});
java 不能用数组初始化List 只能复制
String a="/home/test";
String []arr=a.split("/");可以按正则切分
String 转换成数组可以方便下标索引 即。 String s1="hello" ;char sarr[]=s1.toCharArray();
Set HashSet add,remove,
HashMap<A,B> map ;
map.put(key,value);
map.containsKey(key);
map.putIfAbsent(key,value);
map.get(key)
map.getOrDefault(key,value)当没有对应的key时,插入一个pair,并使用value作为值。
遍历
for (Map.Entry<Character,Boolean> entry:m1.entrySet() )
entry.getKey();entry.getValue();
PriorityQueue<E> q=new PriorityQueue<>(10,(a,b)->(b-a)) a,b fun1<0 a在前面 故fun1=b-a是降序
q.add()
q.poll()
q.peek();
Stack<E> stack;
stack.push();
stack.pop();
stack.peek();
List<A> l1;
l1.add();
List<A> l2;
l1.addAll(l2);
二维数组的复制需要对二维数组的每一维进行clone()
即 int [][]arr1=new int [arr.length][];
for(int i=0;i<arr.length;i++)
arr1[i]=arr[i].clone();
int String 转换String.valueOf(int i) 和Integer.toString(int i);
除以上方法外,还可以 ""+x;
java 产生随机数
Random generator = new Random();
double number = generator.nextDouble() ;
List<Integer> l1;
l1.add(1);
l1.add(2);
l1.remove(1);删除下标为1的元素
l1.remove(new Integer(1));删除值为1的对象
java ArrayList<Integer> l1的对象没有办法直接转换成数组
需要int []a=new int [l1.size()];
for(int i=0;i<l1.size();i++)
a[i]=l1.get(i);
String s1=new String("hello");
s1.substring(a,b) b>=0; b是出界,不包含
java 数组的初始化需要通过循环