第一种:
int a[][]={{1,2,3},{4,5,6}};第二种,先指明行数,再对每行的长度申请内存赋值:
int[][] arr3 = new int[5][];//五行 for(int i=0; i<arr3.length; ++i){ arr3[i]=new int[i+1]; //列的长度每次都变化。每次都要重新申请空间(长度) for(int j=0; j<arr3[i].length; ++j) arr3[i][j]= i+j; }第三种: 直接一个一个赋值
String s= Integer.toString(7);
== 用于比较基本数据类型时,如果两个值相同则结果为true 在比较引用时,如果引用指向同一内存地址则为true
equals() 实现对象的比较。 '=='不允许进行复写,所以可以通过复写equals()方法来达到比较对象内容是否相同的目的。
例如字符串类型对equals进行了复写后,就比较两个字符串对象的内容而不是他们的地址:
String s1=new String("abc"); String s2=new String("abc"); System.out.println(s1==s2); System.out.println(s1.equals(s2));第一个输出false,因为两个对象的地址是不一样的 第二个输出true,因为两个字符串的内容是一样的
int m=3; int n=3; System.out.println(m==n); String str1="123"; String str2="123"; System.out.println(str1==str2); String str3=new String("123"); String str4=new String("123"); System.out.println(str3==str4);依次输出true true false
第一个:m和n的内容都是int型数值3,所以true 第二个:str1和str2的内容都是字符串”123”,所以是true 第三个:str3和str4是指向两个不同字符串对象的地址,所以false
首先equals不能用于基本数据类型变量,只能用于比较对象
其次equals比较的是两个变量的地址是否一样
但是,
String str1=new String("123"); String str2=new String("123"); System.out.println(str1.equals(str2)); 输出的结果是:true因为String类对equals进行了重写,所以在string中比较是两个字符串的内容
怎么计算以2为底的对数: 借助换底公式:
double res=Math.log(n)/Math.log(2);
Arrays.equals(array1, array2)
这里的array1、array2可以是ArrayList对象,也可以是int [] char[]这种数组 函数返回布尔数值
数组:a 指针:p1, p2
int p1=0,p2=a.length; while(p1<=p2){ int mid=(p1+p2)/2; if(a[mid]==target) return; if(a[mid]<target) p1=mid+1; else p2=mid-1; }除了general的初始化方法,还可以:
ArrayList<Stirng> obj = new ArrayList<String>(Arrays.asList(String str1, String str2));或者:
ArrayList<String> list = new ArrayList<String>(){{add("str01"); add("str02");}};格雷码关于i的表达式: gray[i]=i^(i/2)
卡特兰数 F(1)=1 F(2)=2 F(n)=(2n)!/(n!(n+1)!) n>2
通过中序遍历和先序遍历构建二叉树: https://blog.csdn.net/AXIMI/article/details/85276585
https://blog.csdn.net/AXIMI/article/details/88934189
