美文网首页Java从入门到放弃
演示代码1:模拟学生选课功能

演示代码1:模拟学生选课功能

作者: Deque | 来源:发表于2018-11-01 20:03 被阅读0次

课程类:

package com.aiuiot.collection;
/**
 * 课程类
 * @author aiuiot
 *
 */
public class Course {
    public String id;   //课程id属性
    public String name; //课程name属性
    
    //为方便使用,添加含参数的构造器
    public Course(String id,String name) {
        this.id = id;
        this.name = name;
    }
    
    //添加无参的构造器
    public Course() {
        
    }

}

学生类:

package com.aiuiot.collection;

import java.util.HashSet;
import java.util.Set;
/**
 * 学生类
 * @author aiuiot
 *
 */
public class Student {
    public String id;
    public String name;
    // 把课程信息存放在Set类型的属性里
    public Set courses;
    
    public Student(String id,String name) {
        this.id = id;
        this.name = name;
        //给courses属性初始化,通过new HashSet()初始化
        this.courses = new HashSet();
    }
}

ListTest类

package com.aiuiot.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

/**
* 被选课程类
* @author aiuiot
*
*/
public class ListTest {
   /**
    * 用于存放被选课程的List
    */
   public List courseToSelect;
   
   //构造方法,并初始化courseToSelect属性
   public ListTest() {
       this.courseToSelect = new ArrayList();
   }
   
   /**
    * 用于往courseToSelect中添加课程
    */
   public void testAdd(){
       //创建一个课程对象,并通过调用add()方法,添加到被选课程List中
       Course cr1 = new Course("1", "《数据结构》");
       courseToSelect.add(cr1);
       
       //打印输出,提示打印课程,通过get()方法将元素取出来
       Course temp  = (Course) courseToSelect.get(0);
       System.out.println("添加了课程:"+temp.id+":"+temp.name); 
       
       Course cr2 = new Course("2", "《Java编程思想》");
       courseToSelect.add(0, cr2);
       Course temp2 = (Course)courseToSelect.get(0);
       System.out.println("添加了课程:"+temp2.id+":"+temp2.name);
       
       courseToSelect.add(cr1);
       Course temp0 = (Course)courseToSelect.get(2);
       System.out.println("添加了课程:"+temp0.id+":"+temp0.name);
       
       //以下方法1会抛出数组下标越界异常
//      Course cr3 = new Course("3", "《从你的全世界路过》");
//      courseToSelect.add(,cr3);
       
       Course[] course = {new Course("3", "《离散数学》"),new Course("4", "《汇编语言》")};
       courseToSelect.addAll(Arrays.asList(course));
       Course temp3 = (Course)courseToSelect.get(3);
       Course temp4 = (Course)courseToSelect.get(4);
       System.out.println("添加了两门课程:"+temp3.id+":"+temp3.name+";"+temp4.id+":"+temp4.name);

       Course[] course2 = {new Course("5", "《史记》"),new Course("6", "《资治通鉴》")};
       courseToSelect.addAll(2, Arrays.asList(course2));
       Course temp5 = (Course)courseToSelect.get(2);
       Course temp6 = (Course)courseToSelect.get(3);
       System.out.println("添加了两门课程:"+temp5.id+":"+temp5.name+";"+temp6.id+":"+temp6.name);
       
   }
   /**
    * 取得List的元素的方法,方式一:通过for循环遍历
    */
   public void testGet() {
       int size = courseToSelect.size();
       System.out.println("有如下课程待选:");
       for(int i = 0;i < size;i++) {
           Course cr= (Course)courseToSelect.get(i);
           System.out.println("课程:"+cr.id+":"+cr.name);
       }
   }
   /**
    * 方式二:通过迭代器遍历List
    * @param args
    */
   public void testIterator() {
       //通过集合的迭代器(iteartor)方法,取得迭代器的实例
       Iterator it = courseToSelect.iterator();
       System.out.println("有如下课程待选:(迭代器)");
       while(it.hasNext()) {
           Course cr = (Course)it.next();
           System.out.println("课程:"+cr.id+":"+cr.name);
       }
   }
   
   /**
    * 方式二:迭代器的第二种写法
    * 通过for each方法访问集合元素
    * @param args
    */
   public void testForEach() {
       System.out.println("有如下课程待选:(迭代器 for each)");
       for(Object obj:courseToSelect) {
           Course cr = (Course)obj;
           System.out.println("课程:"+cr.id+":"+cr.name);
       }
   }
   
   /**
    * 修改List中的元素
    * @param args
    */
   public void testModify() {
       courseToSelect.set(4, new Course("7", "《毛概》"));
   }
   
   /**
    * 删除List中元素
    * @param args
    */
   public void testRemove() {
//      Course cr = (Course)courseToSelect.get(4);
//      System.out.println("我是课程:"+cr.id+":"+cr.name+"我即将被删除");
//      System.out.println("即将删除4位置伤的课程");
//      courseToSelect.remove(4);
       Course[] course = {(Course) courseToSelect.get(4),(Course) courseToSelect.get(5)};
       courseToSelect.removeAll(Arrays.asList(course));
       System.out.println("成功删除课程!");
       testForEach();
   }
   
   public static void main(String[] args) {
       ListTest lt = new ListTest();
       lt.testAdd();
       lt.testGet();
       lt.testIterator();
       lt.testForEach();
       lt.testModify();
       lt.testForEach();
       lt.testRemove();
   }

}
package com.aiuiot.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
* 测试泛型
* @author aiuiot
*
*/
public class TestGeneric {
   //带有泛型Course,的list类型属性
   public List<Course> courses;
   public TestGeneric() {
       this.courses = new ArrayList<Course>();
   }
   
   /**
    * 测试添加
    * @param args
    */
   public void testAdd() {
       Course cr1 = new Course("1", "大学语文");
       courses.add(cr1);
       //泛型集合中不能添加泛型规定的类型及其子类型以外的对象,否则会报错
       //courses.add("能否添加一些奇怪的东西呢?");
       Course cr2 = new Course("2", "Java 基础");
       courses.add(cr2);
   }
   
   /**
    * 测试循环遍历
    * @param args
    */
   public void testForEach() {
       for(Course cr:courses) {
           System.out.println(cr.id+" "+cr.name);
       }
   }
   
   /**
    * 泛型集合可以添加泛型的子类型的对象实例
    * @param args
    */
   public void testChild() {
       ChildCourse ccr = new ChildCourse();
       ccr.id = "3";
       ccr.name = "我是子类型的课程对象实例";
       courses.add(ccr);
   }
   
   /**
    *泛型不能使用基本类型 
    * @param args
    */
   public void testBasicType() {
       List<Integer> list = new ArrayList<Integer>();
       list.add(1);//强制转为包装类
       System.out.println("基本类型的包装类作为泛型!:" + list.get(0));
   }
   
   public static void main(String[] args) {
       TestGeneric tg = new TestGeneric();
       tg.testAdd();
       tg.testForEach();
       tg.testChild();
       tg.testForEach();
       tg.testBasicType();

   }

}

相关文章

  • 演示代码1:模拟学生选课功能

    课程类: 学生类: ListTest类

  • 使用Java集合框架实现学生选课操作

    实现功能--模拟学生选课功能 1.选择课程(往集合中添加课程)2.删除所选的某门课程(删除集合中的元素)3.查看所...

  • 从零搭建教务抢课系统(一)

    目录 (一)核心功能:模拟登陆(二)使用Cookie进行模拟登录(三)获取教务网选课列表(四)循环选课(五)断线重...

  • 从零搭建教务抢课系统(四)

    目录 (一)核心功能:模拟登陆(二)使用Cookie进行模拟登录(三)获取教务网选课列表(四)循环选课(五)断线重...

  • 从零搭建教务抢课系统(三)

    目录 (一)核心功能:模拟登陆(二)使用Cookie进行模拟登录(三)获取教务网选课列表(四)循环选课(五)断线重...

  • 从零搭建教务抢课系统(二)

    目录 (一)核心功能:模拟登陆(二)使用Cookie进行模拟登录(三)获取教务网选课列表(四)循环选课(五)断线重...

  • 从零搭建教务抢课系统(五)

    目录 (一)核心功能:模拟登陆(二)使用Cookie进行模拟登录(三)获取教务网选课列表(四)循环选课(五)断线重...

  • 选课系统android

    设计内容: 设计开发一个简单的“学生选课系统”APP,并实现基本的选课功能,查询功能。主要功能及要求: (1)...

  • 基于C++实现的选课系统

    1 程序功能 教务提供登记课程的功能,为学生提供选课及查看的功能。 2 程序总览 源码下载地址:https://w...

  • 09-Python标准库-[部分]

    一、目录遍历 os 用于获取系统的功能,主要用于操作文件或者文件夹 代码演示: 1.使用递归遍历目录 代码演示:...

网友评论

    本文标题:演示代码1:模拟学生选课功能

    本文链接:https://www.haomeiwen.com/subject/oaqfxqtx.html