集合(4)—Collection之Set的使用方法
2017-03-26 09:47
453 查看
定义
set接口及其实现类–HashSet
Set是元素无序且不可重复的集合,被称为集。
HashSet是哈希集,是Set的一个重要实现类
set中循环只能使用foreach和iterator这两个,而没有get()方法
set中无论添加某个对象多少次,最终只会保留一个该对象 的引用,并且保留的是第一次添加的那个。
set中add()、addAll()、remove()、removeAll()方法和List中使用方法一样
实现类
HashSet()
特点:
不能保证元素的排列顺序,顺序有可能发生变化。
另外HashSet不是同步的,如果多个线程同时访问一个Set,只要有一个线程修改Set中的值,就必须进行同步处理,通常通过同步封装这个Set的对象来完成同步,如果不存在这样的对象,可以使用Collections.synchronizedSet()方法完成。
Set s = Collections.synchronizedSet(new HashSet(…));
元素值可以是null。
使用方法
定义:
添加元素:
删除Set中元素
首先创建一个List类型变量,把set类型变量使用addAll()方法存到List集合变量中去,再使用remove()方法删除
打印输出
其他方法和List一致,大家可以自己去验证
set接口及其实现类–HashSet
Set是元素无序且不可重复的集合,被称为集。
HashSet是哈希集,是Set的一个重要实现类
set中循环只能使用foreach和iterator这两个,而没有get()方法
set中无论添加某个对象多少次,最终只会保留一个该对象 的引用,并且保留的是第一次添加的那个。
set中add()、addAll()、remove()、removeAll()方法和List中使用方法一样
实现类
HashSet()
特点:
不能保证元素的排列顺序,顺序有可能发生变化。
另外HashSet不是同步的,如果多个线程同时访问一个Set,只要有一个线程修改Set中的值,就必须进行同步处理,通常通过同步封装这个Set的对象来完成同步,如果不存在这样的对象,可以使用Collections.synchronizedSet()方法完成。
Set s = Collections.synchronizedSet(new HashSet(…));
元素值可以是null。
使用方法
定义:
public class Student { public String id; public String name; public Set<Course> courses;//Set接口定义了只能存储课程类型的变量(courses),用于存储学生所选课程 public Student(String id,String name){ this.id=id; this.name=name; this.courses = new HashSet<Course>(); //HashSet是Set接口的一个重要实现类 } } Student students = new Student();//创建Student类对象
添加元素:
student.courses.add(new Course("12","as")); //如果一样就把这个元素(课程对象)添加到Student类course属性中
删除Set中元素
首先创建一个List类型变量,把set类型变量使用addAll()方法存到List集合变量中去,再使用remove()方法删除
//存储学生选课后存到Set类型变量courses中的元素,用于删除courses中的元素 List<Course> coList = new ArrayList<Course>(); //删除学生已选课程需要把学生课程这个属性放到集合coList中去 coList.addAll(student.courses); //再获取指定课程的位置(位置从0开始),再使用remove删除。 student.courses.remove(coList.get(元素位置));
打印输出
for (Course cr : student.courses) { System.out.println("选择了课程:"+cr.id+" "+cr.name); }
其他方法和List一致,大家可以自己去验证
相关文章推荐
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与LinkedHashSet类))
- TreeSet(有序集合)对Comparable元素的排序(或使用Comparator)与元素equals方法的关系
- Java集合Collection、List、Set、Map使用详解
- 集合(2)—Collection之List的使用方法
- Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件
- Java Set集合使用方法介绍(2)——宠物猫信息管理
- iOS开发OC基础:OC集合NSSet、NSMutableSet以及NSCountedSet的基本方法的使用
- Bonita BPM ----- collection 集合的使用方法
- 字串的连接最长路径查找(使用TreeSet集合的比较器new Comparator(){ }:匿名内部类方法)
- Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件
- Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件
- 黑马程序员---集合体系的继承关系图。顶层接口Collection中的方法,迭代器Iterator使用和原理,List派系特点
- HashMap和HashSet的使用,区别。集合,Array、Collection(List/Set/Queue)、Map
- Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件
- Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件
- Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件
- 集合框架Map之entrySet方法的使用
- Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件
- java中set集合的使用方法