1、集合实现类不一定只用ArrayList、LinkedList
(Vector比较老了就算了)、HashSet、TreeSet、LinkedHashSet、HashMap、TreeMap、LinkedHashMap都可以,特别是Tree开头的。生僻的Hashtable、ConcurrentHashMap也不是不能用
2、jdk 8 新特性能用就尽量用
Lambda
Stream流
if (null != studentMap) {
studentMap.keySet().forEach(o -> {
System.out.println("key = " + o + ", value = " + studentMap.get(o));
});
}
private Map<String, String> getGeoHashHeatMapDataMap(String categoryInfo) {
List<KeyValueData> categoryList = JSONObject.parseArray(categoryInfo, KeyValueData.class);
Map<String, String> map = categoryList.stream()
.collect(Collectors.toMap(KeyValueData::getK, KeyValueData::getV));
return map;
}
3、创建对象
反射
采用clone机制
通过序列化
用newInstance吧
//2 newInstance
try {
Class aClass = Class.forName("basice.Hello");
Hello h2 = (Hello) aClass.newInstance();
h2.sayWorld("newInstance");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
4、数据结构与算法
排序
5、优化多余if else(表达式写法、case等)
电商公司枚举类如下:
package basice;
/**
* @author kegekeqi
* @version 1.0
* @date 2021-12-19 17:32
*/
public enum EleCommerceEnum {
TAOBAO(1, "淘宝"),
PINGDUODUO(2, "拼多多");
Integer id;
String name;
EleCommerceEnum(Integer id, String name) {
this.id = id;
this.name = name;
}
}
if else的方式,如果电商平台越多,代码就越显得冗余:
换成switch case 精简了不少代码
;
/**
* @author kegekeqi
* @version 1.0
* @date 2021-12-19 17:35
*/
public class EleCommerceMain {
public Double count(EleCommerceEnum company, Integer weight) {
switch (company) {
case TAOBAO:
System.out.println(10 + weight * 1.1);
return 10 + weight * 1.1;
case PINGDUODUO:
System.out.println(6 + weight * 1.2);
return 6 + weight * 1.2;
default: throw new IllegalArgumentException("No Data");
}
}
public static void main(String[] args) {
Class aClass = null;
try {
aClass = Class.forName("basice.EleCommerceMain");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
EleCommerceMain h = null;
try {
h = (EleCommerceMain) aClass.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
// EleCommerceMain h = new EleCommerceMain();
h.count(EleCommerceEnum.TAOBAO, 2);
}
}