当前位置:网站首页>Set集合
Set集合
2022-08-09 07:56:00 【洛央虲】
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;
public SetTest(){
coursesToSelect = new ArrayList<Course>();
}
/** * 用于往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);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
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)){
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);
}
}
}
边栏推荐
猜你喜欢
随机推荐
Anaconda 使用代理
Win10桌面图标排列混乱
静态路由的原理与配置
The String class objects created by the JVM memory allocation and the difference between equals and = =
Change Jupyter Notebook default open directory
世界顶尖3D Web端渲染引擎:HOOPS Communicator技术介绍(一)
HOOPS助力 SolidWorks edrawings 引入AR/VR技术
Data storage implementation of SDRAM and read and write operations on its data
弹性盒样式、移动端、VW适配、响应式布局
Colors that Tkinter can choose from
Native JDBC operation database
ncnn 推理猫狗识别
Important news丨.NET Core 3.1 will end support on December 13 this year
【机器学习】中国大学慕课《机器学习》课后习题(二)(回归)
Anaconda use proxy
C语言:打印菱形
Codeforces Round #359 (Div. 2) C. Robbers' watch Violent Enumeration
实现弹簧柔性状态的2种方式 | Solidworks教程
Exclude null values when Oracle limits
RAID配置实战