-
这里重写equals只判断了name一个属性,需要判断更多的话在后面用&&连起来即可 public boolean equals(Object obj){ if(this == obj) return true; if(obj == null || getClass() != obj.getClass()) return false; Course course = (Course)obj; return Objects.equals(name,course.name); } 用containsAll()方法时,括号中的集合泛型也要跟检查的集合的泛型一致
查看全部 -
使用put(Key,element)方法可以修改对应键值的值
查看全部 -
entrySet()方法返回的是Entry的Set类型,而Entry也有泛型:
Set<Map.Entry<String,Student>> entrySet = students.entrySet();
得到Set类型的entrySet之后再用foreach循环遍历entrySet:
for(Map.Entry<String,Student> entry : entrySet){ System.out.println("得到键值:"+entry.getKey()); System.out.println("得到对应的值:"+entry.getValue().name); }
getKey()方法得到entry的键值,getValue()方法得到entry的对应的值,再这里得到的是Student类型的对象。
查看全部 -
String 对象创建后不能被修改,是不可变的,修改其实是创建新的对象,所指向的内存空间的不同,
如:String s1 = "爱慕课";
修改为 s1 = “欢迎来到”+s1;
//字符串s1被修改,指向新的内存空间;
new一个字符就是创建一个对象,该字符就不能改变了。
查看全部 -
Set的元素无序切不可以重复
查看全部 -
首先在学生类当中创建Set类的属性:
Set<Course> courses = new HashSet();
然后创建一个SetTest类开始测试:
在测试中也创建一个Set类用来存放所有课程:
Set<Course> courses = new HashSet();
然后创建Course类对象,将其存放进Set类的实例化对象中:
Course cr1 = new Course("1","数据结构");
courses.add(cr1);
Course cr2 = new Course("2","C语言");
courses.add(cr2);
Course cr3 = new Course("3","计算机网络");
courses.add(cr3);
用for each将集合中元素都打印出来:
System.out.println("能选择的课程如下:");
for(Course course:courses){
System.out.print("课程:");
System.out.println(course.id+":"+course.name);
}
接着创建学生类对象,循环选课的次数,在每次循环中,输入课程ID,用for each来遍历判断输入的ID和集合中元素的ID是否相等,如果相等则将该Course元素插入学生对象的courses集合中:
Student student = new Student("1","文胸");
int size = courses.size();
for (int i = 0; i < 3; i++){
System.out.print("请输入要选择的课程的序号:");
Scanner console = new Scanner(System.in);
String num = console.next();
for(Course course : courses){
if(course.id.equals(num)){
student.courses.add(course);
}
}
}
最后再用for each循环打印出学生对象的courses集合的元素
System.out.println("学生:"+student.name+"所选的课程为:");
for(Course course:student.courses){
System.out.println(course.id+":"+course.name);
}查看全部 -
泛型不能为基本类型,如果要使用基本类型,需要使用基本类型的包装类
查看全部 -
泛型使用方法如下:
List<Course> courseToSelect = new ArrayList<Course>();
使用泛型可以规范集合中的元素为规定的类型及其子类型;
查看全部 -
调用List接口类的courseToSelcet对象的remove()方法,括号中可以放要删除的元素,会删除列表中第一个遍历到的对应的元素;括号中也可以放数字。
查看全部 -
调用List类的对象coursesToSelect中的set(index,element)方法,在指定位置上修改元素:
coursesToSelect.set(4,new Course("7","毛概"));
查看全部 -
三种遍历集合的方式:
其中,Course是课程类,couresesToSelect是List的实例化对象,里面放着Course类的对象
/** * get()方法遍历集合 */ public void testGet(){ int size = coursesToSelect.size(); System.out.println("有待选课程如下(get方法):"); for(int i = 0; i < size; i++){ Course cr = (Course)coursesToSelect.get(i); System.out.println("课程:"+cr.id+":"+cr.name); } } /**、 * 使用迭代器来遍历集合 */ public void TestIterator(){ Iterator it = coursesToSelect.iterator(); System.out.println("有待选课程如下(迭代器方法):"); while(it.hasNext()){ Course cr = (Course)it.next(); System.out.println("课程:"+cr.id+":"+cr.name); } } /** *通过for each方法遍历集合 */ public void testForEach(){ System.out.println("有待选课程如下(for each方法):"); for(Object obj: coursesToSelect){ Course cr = (Course)obj; System.out.println("课程:"+cr.id+":"+cr.name); } }
查看全部 -
List可以精确的控制每个元素的插入位置,删除某个位置的元素
- ArrayList底层是由数组实现
list.add(对象)把一个对象添加到另一个集合的队尾位置
list.add(index, 对象) 把一个对象添加到另一个集合的指定位置
list.addAll(集合对象) 把一个集合添加到另一个集合的队尾位置
list.addAll(index, 集合对象) 把一个集合添加到另一个集合的指定位置
Arrays.asList(数组) 把一个数组转换成List集合查看全部 -
Math类的方法
查看全部 -
Calendar c = Calendar.getInstance();//Calendar是一个抽象类,用它的静态方法创建一个Calendar类的对象 int year = c.get(Calendar.YEAR);//用实例化对象c的get方法获得年份 Date date = c.getTime();//创建Date类的对象date查看全部
-
Scanner input = new Scanner(System.in);里的System.in是什么意思
还有int one = input.nextInt();这个input.nextInt()又是什么意思啊
System.in是System(系统)类,in是System的输入流
input.nextInt()作用是在控制台输入int类型的数据
InputMismatchException,Java中的异常,检测是否为数字
查看全部
举报