Java(十三)--Set的添加,删除,修改
2015-08-25 20:17
585 查看
Set即集合,有着无序性,不可重复性等特性。HashSet是Set的重要实现类,哈希集
同List相同,有add(),addAll(),remove(),removeAll(),size()等方法,但没有set(),get()方法,(以上方法都没有写参数)。因为Set有无序性,所以不能通过下标来获取元素。只能通过Iterator和for方法
接上个程序(Course),这次创建学生类
学生类中有Set,已选课程
新建一个测试类SetTest,其中有属性coursesToSelect(List)作为备选课程
由上面代码看出,Set的初级用法(添加)和List并没有多大区别,但是如何添加一个数组还没学会。(addAll的用法)
同List相同,有add(),addAll(),remove(),removeAll(),size()等方法,但没有set(),get()方法,(以上方法都没有写参数)。因为Set有无序性,所以不能通过下标来获取元素。只能通过Iterator和for方法
接上个程序(Course),这次创建学生类
import java.util.*; /* * 学生类 */ public class Student { public String id; public String name; public Set<Course> courses; Student(String newId,String newName){ id=newId; name=newName; courses=new HashSet<Course>(); } }
学生类中有Set,已选课程
新建一个测试类SetTest,其中有属性coursesToSelect(List)作为备选课程
import java.util.*; public class SetTest { public List<Course> coursesToSelect; public SetTest(){ coursesToSelect=new ArrayList<Course>(); } /* *将课程添加到List中去 *同上个教程的添加方法 */ public void testAdd(){ //创建一个课程对象,并通过add方法添加List中 Course cr1=new Course("1","数据结构"); coursesToSelect.add(cr1); Course cr2=new Course("2","C"); coursesToSelect.add(0,cr2); Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")}; coursesToSelect.addAll(Arrays.asList(course)); Course[] course2={new Course("5","高等数学"),new Course("6","大学英语")}; coursesToSelect.addAll(2,Arrays.asList(course2)); } /* *遍历输出课程 */ public void testForEach(){ System.out.println("添加了如下课程(通过foreach)"); 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("welcome"+student.name+"选课"); //选课,通过输入ID与List中的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); //student.courses.add(cr);//set中元素不可重复,重复添加只添加一次 } } Course[] course1={new Course("1","数据结构"),new Course("2","C"),new Course("3","离散数学")}; student.courses.addAll(Arrays.asList(course1)); } 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); } } }
由上面代码看出,Set的初级用法(添加)和List并没有多大区别,但是如何添加一个数组还没学会。(addAll的用法)
相关文章推荐
- HBase总结(十二)Java API 与HBase交互实例
- Java String浅析
- Java通过Mathematica实现人脸识别
- Spring整合quartz实现定时任务
- Java中的HashSet和TreeSet
- java_NIO入门教程
- 从零开始学JAVA DAY6
- java--线程池
- java内存:堆、栈、常量池、方法区
- HBase总结(十一)hbase Java API 介绍及使用示例
- 解决Initializing Java Tooling 和 Initializing Java Tooling卡死问题
- java虚拟机如何实现垃圾回收
- java 3种简单的排序
- Java基础笔记-反射及应用
- JAVA的事件监听机制
- 同步锁的另外一种实现
- Java--并发API
- Java输入输出流的使用详细介绍
- change Java on Ubuntu Kylin 15.04
- 深入浅出RxJava(一:基础篇)