java 语法笔记

来源:互联网 发布:筑山殿 知乎 编辑:程序博客网 时间:2024/06/05 19:26

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 数组的初始化需要通过循环

0 0