public Person(){super();}
public Person(int id,String name){
this.id=id;
this.name=name;
}
public class Person implements Serializable
public void setId(int id){
this.id=id;
}
public int getId(){
return this.id;
}
public String getName() {
return name;//is
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "[Person:id="+id+",name="+name+"]";
}
@Override
//判定两个Person是不是同一个人?===id相同即可
//由于父类的equals比较的是 ==地址,所以我们需要重写equals方法
public boolean equals(Object ob){
//1.假设ob不是person/ob==person
if(ob==this){
return true;
}else{
//2.==不同,需要将ob-->person 需要使用instanceof进行判定
if(ob instanceof Person){
//如果类型相同,先转换为同一个类型,进行比较id
Person p=(Person)ob;
if((p.id==this.id)&&(p.name==this.name)){//id和name是否相同
return true;
}
return false;
}else{
return false;//类型如果不一致,不需要比较
}
}
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
使用getYear获得的是Date对象中年份减去1900以后的值
使用getMonth获得的是Date对象中月份减去1以后的值
int year=date.getYear();
System.out.println(year+1900); //当前年
int day=date.getDay();
System.out.println(day);//星期中的第几天
int month=date.getMonth();
System.out.println(month+1); //当前月
int min=date.getMinutes();
System.out.println(min); //时间毫秒数
long time=date.getTime();//可以和java.sql.date关联
System.out.println(time);
Calendar中以周日为第一天
//目前最常用的设置以及修改时间是Calendar类
Calendar cal=Calendar.getInstance();
//获取年/月/日/时间,,,,
System.out.println(cal.get(Calendar.YEAR));
//获取一年中第几天,一个月中第几天,一个周中的几天
System.out.println(cal.get(Calendar.DAY_OF_MONTH));
System.out.println(cal.get(Calendar.DAY_OF_YEAR));
System.out.println(cal.get(Calendar.DAY_OF_WEEK));
//设置时间节点
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
System.out.println(cal.get(Calendar.DAY_OF_WEEK));
//由于上面从本周六(7)变成了上周日(1),-6
//如果4这个参数超过30天,建议使用DAY_OF_YEAR
cal.add(Calendar.DAY_OF_MONTH, 4);//+4
System.out.println(cal.get(Calendar.DAY_OF_MONTH));
//yyyy:年
//MM:月
//dd:日
// HH:时(24制)
//hh:时(12制)
//mm:分
//ss:秒
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"); //将时间date变成符合你设计的模式
String format=sdf.format(date);
System.out.println(format);
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd");
Date date1=sdf1.parse("2019-08-24"); //将具体时间格式变成date
System.out.println(date1);
要求
public class GoodsDate {
public static void main(String[] args) throws ParseException {
Scanner sc=new Scanner(System.in);
System.out.println("请输入生产日期(yyyy-MM-dd):");
String date=sc.next();
System.out.println("请输入保质期:");
int day=sc.nextInt();
sc.close();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
//String->date->Calendar
Date date1=sdf.parse(date);
Calendar cal=Calendar.getInstance();
cal.setTime(date1); //将生产日期的时间设置cal的当前时间
cal.add(Calendar.DAY_OF_YEAR,day-7); //促销日期=生产日期+保质期-7
//Calendar->date->String
date1=cal.getTime();
String date2=sdf.format(date1);
System.out.println("促销日期为:"+date2);
}
}
所有的数字包装类都有一个定级父类—>Number
int i=1;
Integer j=1;
//先装箱(自动),i会转换成Integer类型
System.out.println(i==j); //true
Integer a=2;
Integer b=new Integer(2);
Integer c=new Integer(2);
System.out.println(a==b); //false
System.out.println(b==c); //false
//将字符串-->数字
Integer age=Integer.parseInt("20");
System.out.println(Integer.MAX_VALUE);
Collection coll=new ArrayList<>();
//添加add和addAll
Person p1=new Person(1,"苏大强");
coll.add(p1);
//由于之前在Person中重写过toString()
System.out.println(coll);
Collection doll=new ArrayList<>();
doll.add(new Person(2,"苏明哲"));
doll.add(new Person(2,"苏明成"));
doll.add(new Person(2,"苏明玉"));
coll.addAll(doll); //[[Person:id=1,name=苏大强], [Person:id=2,name=苏明哲], [Person:id=2,name=苏明成], [Person:id=2,name=苏明玉]]
System.out.println(coll);
coll.size();
coll.clear();
//contains的比较原则:通过对象的equals方法的重写来进行比较,如果没有重写相当于两个对象比较地址
boolean b=doll.contains(new Person(2,"苏明玉")); //判断此集合是否包含指定的元素
System.out.println(b);
b=doll.containsAll(coll); //判断此集合是否包含指定集合中的所有元素
coll.isEmpty();
coll.remove(new Person(2,"苏明成"));
System.out.println(coll); //[[Person:id=1,name=苏大强], [Person:id=2,name=苏明哲], [Person:id=2,name=苏明玉]]
coll.removeAll(coll);
System.out.println(coll); //[]
//在迭代器中remove建议使用迭代器的remove
Iterator it=doll.iterator();
while(it.hasNext()) {
Person p=it.next();
//doll.remove(p); //使用该语句会出现java.util.ConcurrentModificationException异常
it.remove();
System.out.println(p+"***");
}
如果不设置泛型
Collection c=new ArrayList();
c.add(1);
c.add("哈哈");
c.add(new Person(3,"蒙总"));
System.out.println(c);
//使用增强for循环迭代
for(Object o:c){
System.out.println(o);
//不建议在循环时进行添加和删除操作,若需要做,请使用迭代器进行操作!
//c.remove(o); //使用该语句会出现java.util.ConcurrentModificationException异常
}