Contains方法,查看序列中是否包含某个元素
2016-06-07 00:41
429 查看
Equals方法重写
package com.imooc.collection; /** * 课程类 * @author Monica * */ public class Course { public String id; public String name; public Course(String id,String name){ this.id = id; this.name = name; } public Course(){ } @Override public boolean equals(Object obj){ if(this == obj){//通过双等号判断对象相等 return true; } if(obj == null)//如果obj等于空 return false; if(!(obj instanceof Course))//ogj对象不是Course类型 return false; //前面都通过了 Course course = (Course)obj;//强转为course对象 if(this.name == null){//通过名称判断是否为course对象,判断名称是否为空 if(course.name == null)//强转为course的对象是否为空,两个都为空,是相等的 return true; else return false; }else{//当前的对象不为空 if(this.name.equals(course.name))//判断name是否相等 return true; else//name不相等 return false; } } }
package com.imooc.collection; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class SetTest { public List<Course> coursesToSelect; private Scanner console; public SetTest(){ coursesToSelect = new ArrayList<Course>(); console = new Scanner(System.in); } /** * 用于往coursesToSelect中添加备选课程 */ public void testAdd(){ //创建一个课程对象,并通过调用add方法,添加到备选课程List中 Course cr1 = new Course("1","数据结构"); coursesToSelect.add(cr1); //取出元素 get方法 Course temp = (Course)coursesToSelect.get(0); //System.out.println("添加了课程:"+temp.id+":"+temp.name); Course cr2 = new Course("2","C语言");//提供索引位置,插入元素 coursesToSelect.add(0, cr2); Course temp2 = (Course)coursesToSelect.get(0); //System.out.println("添加了课程:"+temp2.id+":"+temp2.name); coursesToSelect.add(cr1); //取出元素 get方法 Course temp0 = (Course)coursesToSelect.get(2); //System.out.println("添加了课程:"+temp.id+":"+temp.name); //以下方法会抛出数组下标越界异常 //Course cr3 = new Course("3","Test"); //coursesToSelect.add(4,cr3);数组越界 Course[] course = {new Course("3","离散数学"),new Course("4","汇编语言")}; coursesToSelect.addAll(Arrays.asList(course)); Course temp3 = (Course)coursesToSelect.get(3); Course temp4 = (Course)coursesToSelect.get(4); //System.out.println("添加了两门课程:"+temp3.id+":"+temp3.name+";"+temp4.id+":"+temp4.name); Course[] course2 = {new Course("5","高等数学"),new Course("6","大学英语")}; coursesToSelect.addAll(2,Arrays.asList(course2)); Course temp5 = (Course)coursesToSelect.get(2); Course temp6 = (Course)coursesToSelect.get(3); //System.out.println("添加了两门课程:"+temp5.id+":"+temp5.name+";"+temp6.id+":"+temp6.name); } /** * 通过for each方法访问集合元素 * @param args */ public void testForEach(){ System.out.println("有如下课程待选(通过for each访问):"); for(Object obj:coursesToSelect){ Course cr = (Course)obj; System.out.println("课程:"+cr.id+":"+cr.name); } } /** * 测试List的contains方法 * containsAll方法,是否包含多个元素 * @param args */ public void testListContains(){ //取得备选课程序列的第0个元素 Course course = coursesToSelect.get(0); //打印输出courseToSelected是否包含course对象 System.out.println("取得课程:"+course.name); System.out.println("备选课程中是否包含课程:"+course.name+","+coursesToSelect.contains(course)); //提示输入课程名称 System.out.println("请输入课程名称:"); String name = console.next(); //创建一个新的课程对象,ID和名称,与course对象完全一样 Course course2 = new Course(); course2.name = name; System.out.println("新创建课程:"+course2.name); System.out.println("备选课程中是否包含课程:"+course2.name+","+coursesToSelect.contains(course2)); } public static void main(String[] args) { // TODO Auto-generated method stub SetTest st = new SetTest(); st.testAdd(); st.testListContains(); /*st.testForEach(); //创建一个学生对象 Student student = new Student("1","小王"); System.out.println("欢迎学生:"+student.name+"选课!"); //创建要给Scanner对象,用来接收从键盘输入的课程ID Scanner console = new Scanner(System.in); for(int i=0;i<3;i++){ System.out.println("请输入课程ID"); String courseId = console.next(); for(Course cr:st.coursesToSelect){ if(cr.id.equals(courseId)){ student.courses.add(cr); *//** * Set中,添加某个对象,无论添加多少次 * 最终只会保留一个该对象(的引用), * 并且,保留第一次添加的那一个 *//* //student.courses.add(cr); //student.courses.add(null); } } } st.testForEachForSet(student);*/ } public void testForEachForSet(Student student){ //打印输出,学生所选的课程! System.out.println("供选择了:"+student.courses.size()); for(Course cr:student.courses){ System.out.println("选择了课程:"+cr.id+":"+cr.name); } } }
相关文章推荐
- 关于List的contains方法问题
- java判断String字符串数组中是否存在某个值
- maildir 邮件文件名 记录
- 国外十大高校人工智能实验室及其代表性人物一览
- 安卓"failed: dlopen failed: could not load library "libpthread.so.0" needed by ***"的个人了解
- 人工智能(AI)资料大全
- Leetcode-70. Climbing Stairs
- 用Grails写单元测试
- [Leetcode]70. Climbing Stairs
- [Leetcode]172. Factorial Trailing Zeroes
- [Leetcode]217. Contains Duplicate
- Neo4j索引笔记之SchemaIndex和LegacyIndex
- 193_AIDL的使用
- Grails用CONSOLE测试,比写集成测试还快
- vector中pair的排序方法
- 196. Delete Duplicate Emails
- [转载] fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)
- Rails中force index
- TIME_WAIT状态存在的必要性
- Ex2010-17 Linked Mailbox in Exchange Server