为了账号安全,请及时绑定邮箱和手机立即绑定

Java入门第三季

难度入门
时长 5小时 0分
学习人数
综合评分9.50
1125人评价 查看评价
9.7 内容实用
9.4 简洁易懂
9.4 逻辑清晰
  • //SetTest.java

    //测试list的contains方法

    public void testListContains(){

    //取得备选课程序列的第0个元素

    Course course=coursesToSelect.get(0);

    //打印输出coursesTOSelected是否包含course对象

    System.out.println("取得课程:"+course.name);

    System.out.println("备选课程中是否包含课程:"+course.name+","+coursesToSelect.contains(course));

    //创建一个新的课程对象,ID和名称,与course对象完全一样

    Course course2=new Course(course.id,course.name);

    System.out.println("新创建课程:"+course.name);

    System.out.println("备选课程中是否包含课程:"+course2.name+","+coursesToSelect.contains(course2));}

    //重写Course的equals的方法

    public boolean equals(Object obj){

    if(this==obj){

    return true;}

    if(obj==null/)

    return false;

    if(!(obj instanceof Course))

    return false;

    Course course=(Course)obj;

    if(this.name==null){

    if(course.name==null)

    return true;

    else

    returm false;

    }else{

    if(this.name.equals(course.name))

    return true;

    else false;}

    }


    查看全部
  • package com.map;




    import java.util.HashMap;


    import java.util.Map;


    import java.util.Scanner;


    import java.util.Set;




    public class MapTest {


    /*


    * 用来承装学生类型变量


    */


    public Map<String,Student> students;


    /*


    * 在构造器中初始化students


    */


    public MapTest()


    {


    this.students=new HashMap<String,Student>();


    }


    /*


    * test the function of add


    */


    public void testput() {


    Scanner console=new Scanner(System.in);


    int i=0;


    while(i<3)


    {


    String ID=console.next();


    Student st=students.get(ID);


    if(st==null)


    {


    System.out.println("输入学生姓名:");


    String name=console.next();


    Student newstudent=new Student(ID,name);


    //添加ID-name对


    students.put(ID, newstudent);


    System.out.println(students.get(ID).name);


    i++;


    }


    else


    {


    System.out.println("ID ERROR");


    continue;


    }


    }


    }


    /*


    * test the function of keyset


    */


    public void testkeyset()


    {


    //通过keyset方法得到MAP中所有key集合


    Set<String> keyset=students.keySet();


    System.out.println("the mount of students is:"+students.size());


    for(String str:keyset)


    {


    System.out.println(str+" "+(students.get(str)).name);


    }


    }


    /*


    * test the function of delete


    */


    public void testdelete()


    {


    Scanner con=new Scanner(System.in);


    while(true)


    {


    String ID=con.next();


    Student stu=students.get(ID);


    if(stu==null)


    {


    System.out.println("the object is none");


    continue;


    }


    students.remove(ID);


    Set<String> se=students.keySet();


    for(String str:se)


    {


    System.out.println(""+str+" "+(students.get(str)).name);


    }


    }


    }


    /*


    * test the function of MODIFY by put


    */


    public void testmodify()


    {


    Scanner con=new Scanner(System.in);


    while(true)


    {


    String ID=con.next();


    Student stu=students.get(ID);


    if(stu==null)


    {


    System.out.println("the object is none");


    continue;


    }


    String newname=con.next();


    Student student=new Student(ID,newname);


    students.put(ID, student);


    Set<String> se=students.keySet();


    for(String str:se)


    {


    System.out.println(""+str+" "+(students.get(str)).name);


    }


    }


    }


    public static void main(String[] args) {


    MapTest ma=new MapTest();


    ma.testput();


    ma.testkeyset();


    //ma.testdelete();


    ma.testmodify();


    }




    }


    查看全部
  • private void testPut() {

    // TODO Auto-generated method stub

    //创建一个Scanner对象,用来获取输入的学生ID和姓名

    Scanner console = new Scanner(System.in);

    int i = 0;

    while(i<3){

    System.out.println("请输入学生ID");

    String ID = console.next();

    Student st=students.get(ID);

    if(st==null){

    System.out.println("请输入学生姓名:");

    String name=console.next();

    Student newStudent=new Student(ID,name);

    students.put(ID, newStudent);

    System.out.println("成功添加学生:"+students.get(ID).name);

    i++;

    }else{

    System.out.println("该学生ID已被占用!");

    continue;

    }

    }

    }

    public void testKeySet() {

    // TODO Auto-generated method stub

    Set<String>KeySet=students.keySet();

    System.out.println("总共有:"+students.size()+"个学生!");

    for(String stuId:KeySet){

    Student st=students.get(stuId);

    if(st!=null){

    System.out.println("学生:"+st.name);

    }

    }

    }

    删除Map中的映射

    public void testRemove(){

    while(true){

    System.out.println("请输入要删除的学生id");

    Scanner console=new Scanner(System.in);

    String ID=console.next();

    Student st=students.get(ID);

    if(st==null){

    System.out.println("该ID不存在!");

    continue;

    }

    students.remove(ID);

    System.out.println("成功删除学生:"+st.name);

    break;

    }

    }


    查看全部
  • import java.util.Map;

    public class MapTest{

    //用来承装学生类型对象

    public Map<String,Student> students;

    //构造器中初始化students;

    public MapTest(){

    this.students=new HashMap<String,Student>();}

    /**测试添加:输入学生ID,判断是否被占用

    若有被占用,则输入姓名,创建心学生对象,并且

    添加到student中*/

    public void tsetPut(){

    //创建一个Scanner对象,用来获取输入的学生ID和姓名

    Scanner console=new Scanner(System.in);

    int i=0;

    while(i<3){

    System.out.println("请输入学生ID");

    String ID=console.next();

    //判断该ID是否被占用

    Student st=student.get(ID);

    if(st==null){

    //提示输入学生姓名

    System.out.println("请输入学生姓名");

    String name=console.next();

    //创建新的学生对象

    Student newStudent=new Student(ID,name);

    //通过调用students的put方法,添加ID-学生映射

    student.put(ID,newStudent);

    System.out.println("成功添加学生:"+students.get(ID).name);

    i++;

    else{

    System.out.println("该学生ID已被占用!");

    continue;}}}}

    //测试Map的keySet方法

    public void testKeySet(){

    //通过keySet方法,返回Map中的所有“键”的Set集合

    Set <String> keySet=students.keySet();

    //取得students的容量

    System.out.pritnln("总共有:"+students.size()+"个体学生");

    //遍历keySet,取得每一个键,再调用get()方法取得每个键对应的value

    for(String stuId:keySet){

    Student st=students.get(stuId);

    if(st!=null)

    System.out.println("学生:"+st.name);

    }

    }

    public static void main(String args){

    MapTest mt=new MapTest();

    mt.testPut();

    mt.testKeySet();

    }}


    查看全部
  • map接口:

      1:Map接口提供了一种映射关系,其中的元素是键值对(key-value)的形式存储的,能够实现根据Key快速查找value。

    2:map中的键值对是以Entry类型的对象实例存在的。

    3:Key值是不可以重复的,Value是可以重复的。

    4:map支持泛型,形式如:map<Key,Value>

    5:通过put(Key,Value)方法添加键值对的映射

    6:通过remove(Object Key)方法移除键值对

    7:HashMap是map的一个重要实现类,也是最长用的,基于哈希表实现

          HashMap中的Entry对象是无序排列

          Key值和value值都可以为null,但是一个HashMap只能有一个key值         为null的映射(key值不可重复)


    查看全部
  • 为什么name需要用equals()进行比较而不能用 ==?

    因为java.lang.String类重写了equals方法,它返回true如果两个字符串对象包含有相同的内容,但是==只有他们的引用地址相同时才返回true


    查看全部
  • 如何判断一个序列中是否包含某个元素:

    contains(Object o)---List和Set都是这个方法


    查看全部
  • Map与Collection的不同:

    Collection里存的都是单个元素,Map接口提供的是一种映射关系。key和value可以是任意类型的对象

    查看全部
  • Set中获取元素只能用foreach方法或者iterator方法,不用像List那样使用合get()方法。因为set是无序的。所以每次循环出的结果也不相同

    查看全部
  • Set--HashSet

    Set-无序切不可重复。添加重复内容时,会只保留一个

    查看全部
  • 把自己付费买的6500多元优达Udacity全栈视频课po下来了,需要的童鞋可➕某信:sum12358
    查看全部
    0 采集 收起 来源:Java异常简介

    2019-04-29

  • set集没有set()方法,因为是无序的,所以不能想list那样用索引值那样修改其值


    set只能用foreach,iterator输出


    //修改学生类

    public Set /**增加的<Course>*/<Course>courses;

    public Student (String id,String name){

    this.uid=id;

    this.name=name;

    this.course=new HashSet/**增加的<Course>*/<Course>();}

     

    import java.util.List;

    public class SetTest{

    pubic List<Course> coursesToSelect;

    public SetTest(){

    coursesToselect=new ArrayList<Course>();

    }

    public void testAdd(){

    Course cr1=new Course("1","数据结构");

    coursesToSelect.add(cr1);

    Course temp=(Course)coursesToSelect.get(0);

    Course cr2=new Course("2","C语言");

    courseToSelect.add(0,cr2);

    Course temp2=(Course)coursesToSelect.get(0);

    Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")};

    coursesToSelect.addAll(Arrays.asList(course));

    Course temp3=(Course)coursesToSelect.get(2);

    Course temp4=(Course)coursesToSelect.get(3);

    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);}

    public static void main(String[]args){

    SetTest st=new SetTest();

    st.testAdd();

    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)){

    /**

    Set中,添加某个对象,无论添加多少次

    最终只会保留一个

    并且,保留的是第一个

    Set还可以添加null对象

    */

    student.courses.add(cr);}}}

    //打印输出,学生所选的课程

    for(Course cr:student.courses){

    System.out.println("选择了课程:"+cr.id+";"+cr.name);}

    } }


    查看全部
  • //TestGeneric.java增加,泛型集合可以添加泛型的子类型的对象示例

    public void testChild(){

    ChildCourse ccr=new ChildCourse();

    ccr.id="3";

    ccr.name="我是子类型的课程对象示例";

    courses.add(ccr);}

    //TestGeneric.java的main方法中增加

    tg.testChild();

    tg.testForEach();

    //Course增加无参构造器

    public Course(){}

    public class ChildCourse extends Course{

    }

    //泛型不能使用基本类型,但能用包装类

    public void testBasicType(){

    List<Integer> list=new ArrayList<Integer>();

    list.add(1);

    System.out.println("基本类型必须使用包装类作为泛型"+list.get(0));}


    查看全部
  • import java.util.List;

    import java.util.ArrayList;

    public class TestGeneric{

    //带有泛型--Course,的list类型的属性

    public List<Course>courses;

    public TestGeneric(){

    this.courses=new ArrayList<Course>();

    }

    //测试添加

    public void testAdd(){

    Course cr1=new Course("1","大学语文");

    courses.add(cr1);

    //泛型集合中,不能添加泛型规定的类型及其子类型以外的对象

    //courses.add("能否添加一些奇怪的东西呢");(报错)

    Course cr2=new Course("2","java基础");

    courses.add(cr2);}

    //测试循环遍历

    public void testForEach(){

    for(Course cr:courses){

    SYstem.out.println(cr.id+";"+dr.name);

    }}

    public static void main(String[] args){

    TestGeneric tg=new TestGeneric();

    tg.testAdd();

    tg.testForEach();

    }}


    查看全部
  • public class Courses{


    public String id;


    public String name;


    public Courses(String id,String name){


    this.id=id;


    this.name=name;}}


     


     


    import java.util.Set;


    import java.util.HashSet;


    public class Student{


    public String id;


    public String name;


    public Set courses;


    public Student(String id,String name){


    this.id=id;


    this.name=name;


    this.coursers=new HashSet();


    }}


     


     


    import java.util.List;


    import java.util.ArrayList;


    import java.util.Iterator;


    public class ListTest{


    //用于存放备选课程的list


    public List coursesToSelect;


    public ListTest(){


    this.coursesToSelect=new ArrayList();


    }


    //用于往coursesToSelsect中添加备选课程


    public void testAdd(){


    //创建一个课程对象,并通过调用add方法,添加到备选课程list中


    Course cr1=new Course("1","数据结构");


    coursesToSelect.add(cr1);


    Course temp=(Course)coursesToSelect.get(0);


    System.out.println("添加了课程:"+temp.id+";"+temp.name);


     


    Course cr2=new Course("2","C语言");


    courseToSelect.add(0,cr2);


    Course temp2=(Course)coursesToSelect.get(0);


    System.out.println("添加了课程:"+temp2.id+";"+temp2.name);


    /**Course cr2=new Course("2","C语言");


    courseToSelect.add(4,cr2);


    报错,数组下标越界*/ 


     


    Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")};


    coursesToSelect.addAll(Arrays.asList(course));


    Course temp3=(Course)coursesToSelect.get(2);


    Course temp4=(Course)coursesToSelect.get(3);


    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);}


     


    public void testGet(){


    int size=coursesToSelect.size();


    System.out.println("有如下课程待选:");


    for(int i=0;i<size;i++){


    Course cr=(Course)coursesToSelect.get(i);


    System.out.println("课程:"+cr.id+";"+cr.name);}}


     


    //通过迭代器来遍历list


    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中的元素


    public void testModify(){


    coursesToSelect.set(4,new Course("7","毛概"));


    }


     


    //删除list中的元素


    public void testRemove(){


    //方法1


    /**Course cr=(Course)coursesToSelect.get(4);


    System.out.println("我是课程:"+cr.id+";"+cr.name+",我即将被删除");


    coursesToSelect.remove(cr);*/


    //方法2


    /**System.out.println("即将删除4位置上的课程");


    coursesToSelect.remove(4);


    System.out.println("成功删除课程!");*/


    //方法3


    System.out.println("即将删除4位置和5位置上的课程");


    Course[] courses={(Course)coursesToSelect.get(4),(Course)coursesToSelect.get(5)};


    coursesToSelect.removeAll(Arrays.asList(courses));//将数组转换为集合


    System.out.println("成功删除课程!");


    testForEach();


    }


    public static void main(String[]args){


    ListTest it=new ListTest();


    it.testAdd();


    it.testGet();


    it.testIterator();


    it.testForEach();


    it.testModify();


    it.testForEach();


    it.testRemove();


    }


    }


    查看全部

举报

0/150
提交
取消
课程须知
此部分为 Java 课程的进阶内容,适合具有一定 Java 基础的伙伴们学习,如果您是新手,建议您移步 《Java入门第一季》 和 《Java入门第二季》,在理解并掌握面向对象相关知识后再回来进修。
老师告诉你能学到什么?
本课程将学习 Java 中的异常处理、集合框架、字符串、常用类等,逐步学习掌握 Java 高级技术。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!