判断List是否为空
//方法1
if (list != null && !list.isEmpty()) {
//list不为空
} else {
//list为空
}
//方法2
if (list != null && list.size() > 0) {
//list不为空
} else {
//list为空
}
//方法3
if (list == null || list.size() == 0) {
//list为空
} else {
//list不为空
}
list!=null:判断是否存在list,null表示这个list不指向任何的东西,如果这时候你调用它的方法,那么就会出现空指针异常。
list.isEmpty():判断list里是否有元素存在
list.size():判断list里有几个元素
所以判断list里是否有元素的最佳的方法是:
if(list != null && !list.isEmpty()){
//list存在且里面有元素
}
数组操作
合并两个数组
String[] aa = {"11","22","33"};
String[] bb = {"44","55","66"};
String[] cc = {"77","88","99"};
// 合并两个数组
String[] dd = new String[aa.length + bb.length];
System.arraycopy(aa, 0, dd, 0, aa.length);
System.arraycopy(bb, 0, dd, aa.length, bb.length);
// 合并三个数组
String[] ee = new String[aa.length + bb.length + cc.length];
System.arraycopy(aa, 0, ee, 0, aa.length);
System.arraycopy(bb, 0, ee, aa.length, bb.length);
System.arraycopy(cc, 0, ee, aa.length + bb.length, cc.length);
public
static
native
void
arraycopy(Object src,
int
srcPos, Object dest,
int
destPos,
int
length);
其中:
src是源数组
srcPos是源数组复制的起始位置
dest是目标数组
destPos是目标数组接收复制数据的起始位置
length是复制的长度(源数组中从复制起始位置srcPos开始需要复制的长度)
日期时间类
获取当年每月月份
List<String> data = new ArrayList<>();
try {
Calendar c = Calendar.getInstance();
// 获取当前的年份
int year = c.get(Calendar.YEAR);
// 定义时间格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 开始日期为当前年拼接1月份
Date startDate = sdf.parse(year + "-01-01");
// 结束日期为当前年拼接12月份
Date endDate = sdf.parse(year + "-12-31");
// 设置calendar的开始日期
c.setTime(startDate);
// 当前时间小于等于设定的结束时间
while(c.getTime().compareTo(endDate) <= 0){
String time = sdf.format(c.getTime());
//获取月份
data.add(time);
System.out.println(time);
// 当前月份加1
c.add(Calendar.MONTH, 1);
}
for (String s: data) {
}
} catch (ParseException e) {
e.printStackTrace();
}