问题一:
有一张表,里面有很多的数据,有可能一万条也有可能两万条,现在我需要查询这张表中最后一条数据,表结构的主键id是自增长的。
问题解析:
这个问题前面的都是废话,只有最后一句话是最重要的,主键自增长,这代表什么呢,代表最后一条数据的id在所有数据中都是最大的,这就很好办了,我们先查询全部数据,对数据的id进行一个排序,倒叙desc,最后再limit 1 查询第一条数据,这就是最后一条数据
SQL:
SELECT * FROM `表名` ORDER BY id DESC LIMIT 1
问题二:
两个变量,int a=1,int b = 2,这么将a变为2,b变为1,我们可以使用第三方变量进行互相转换一下,除了这种方法还有那些方法呢
推荐方法一:
public static void main(String[] args) {
int a = 1;
int b = 2;
System.out.println("交换前a="+a);
System.out.println("交换前b="+b);
a = a+b;
b = a-b;
a = a-b;
System.out.println("交换后a="+a);
System.out.println("交换后b="+b);
}
运行结果:
推荐方法二:采用异或的方法
public static void main(String[] args) {
int a = 1;
int b = 2;
System.out.println("交换前a="+a);
System.out.println("交换前b="+b);
a = a^b;
b = a^b;
a = a^b;
System.out.println("交换后a="+a);
System.out.println("交换后b="+b);
}
问题三:
有一个字符串,需要统计每个字符串出现的次数
问题解析:
利用hashmap赋值的,如果key一样会覆盖这一次值的原理
public static void main(String args[]) {
String a = "abcaba";
HashMap<Character, Integer> hashMap = new HashMap<>();
Integer b = 0;
char[] arr = a.toCharArray();
for (char c : arr) {
if (!hashMap.containsKey(c)){
hashMap.put(c,1);
}else {
hashMap.put(c,hashMap.get(c)+1);
}
}
System.out.println(hashMap);
}
运行结果