当前位置: 首页> 游戏> 攻略 > 网页设计与制作总结和体会_2344网页游戏大全_可以免费网络推广网站_seo优化顾问服务

网页设计与制作总结和体会_2344网页游戏大全_可以免费网络推广网站_seo优化顾问服务

时间:2025/7/8 16:49:38来源:https://blog.csdn.net/l_dq223020/article/details/144469526 浏览次数:0次
网页设计与制作总结和体会_2344网页游戏大全_可以免费网络推广网站_seo优化顾问服务

一、介绍

Set集合的对象不按特定的方式排序,只是简单把对象加入集合中,但Set集合中不能包含重复对象。Set集合由Set接口和Set接口实现类组成。Set接口继承了Collection接口,因此包含Collection接口的所有方法。

注意:Set构造有一个约束条件,传入的Collection对象不能有重复值。

二、Set接口常用的实现类有HashSet类与TreeSet类

1、HashSet类实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证Set的迭代顺序,特别是它不保证该顺序恒久不变。此类允许使用null元素。
2、TreeSet类不仅实现了Set接口,还实现了jva.util.SortedSet接口,因此,TreeSet类实现的Set集合在遍历集合时按照自然顺序递增排序,也可以按照指定比较器递增排序,即可通过比较器对用TreeSet类实现的Set集合中的对象进行排序。

三、TreeSet类新增的方法

1、first():返回此Set中当前第一个(最低)元素。
2、last():返回此Set中当前最后一个(最高)元素。
3、comparator():返回对此Set中的元素进行排序的比较器。如果此Set使用自然顺序,则返回null。
4、headSet(E toElement):返回一个新的Set集合,新集合是toElement(不包含)之前的所有对象。
4、subSet(E fromElement,E fromElement):返回一个新的Set集合,是fromElement(包含)对象与fromElement(不包含)对象之间的所有对象。
5、tailSet(E fromElement):返回一个新的Set集合,新集合包含对象fromElemnt(包含)之后的所有对象。

四、程序代码(列子)

题目:实现comparable接口,重写该接口中的compareTo()方法。在主方法中创建UpdateStu对象,创建集合,并将UpdateStu对象添加到集合中。遍历该集合中的全部元素,以及通过headSet()、subSet()方法获得的部分集合。

import java.util.Iterator;
import java.util.TreeSet;/**** 这是一个简单的Java程序,用于演示如何使用TreeSet集合来存储和排序自定义对象(UpdateStu)。* UpdateStu类实现了Comparable接口,以便TreeSet能够根据其id属性对对象进行排序。*/
public class UpdateStu implements Comparable<UpdateStu>{ // 注意:这里应该是UpdateStu而不是Object,因为我们只想与UpdateStu对象比较String name; // 学生姓名long id; // 学生ID// 构造方法,用于创建UpdateStu对象public UpdateStu(String name, long id){this.id = id;this.name = name;}// 实现Comparable接口的compareTo方法,用于定义对象的排序规则// 在这里,我们根据id属性的值来比较两个UpdateStu对象public int compareTo(UpdateStu o){ // 注意:参数类型应该是UpdateStu,而不是Objectint result = Long.compare(this.id, o.id); // 使用Long.compare方法来简化比较逻辑return result;}// Getter和Setter方法,用于访问和修改对象的属性public String getName(){return name;}public void setName(String name){this.name = name;}public long getId(){return id;}// 注意:setId方法应该是用来设置id的,但当前实现有误,因为它只是将id设置为其当前值// 正确的setId方法应该接受一个long类型的参数,并将该参数值赋给id属性public void setId(long id){ // 修改方法,添加参数this.id = id;}// main方法,程序的入口点public static void main(String[] args){// 创建几个UpdateStu对象,并将它们添加到TreeSet集合中UpdateStu stu1 = new UpdateStu("李同学", 1011); // 注意:数字前的0是无效的,除非使用八进制(以0开头),但这里应该是十进制UpdateStu stu2 = new UpdateStu("陈同学", 1021);UpdateStu stu3 = new UpdateStu("王同学", 1051);UpdateStu stu4 = new UpdateStu("马同学", 1012);TreeSet<UpdateStu> tree = new TreeSet<>(); // 创建一个TreeSet集合来存储UpdateStu对象tree.add(stu1); // 将对象添加到集合中tree.add(stu2);tree.add(stu3);tree.add(stu4);// 使用迭代器遍历TreeSet集合,并打印出每个对象的id和姓名Iterator<UpdateStu> it = tree.iterator();System.out.println("Set集合中的所有元素:");while (it.hasNext()){UpdateStu stu = it.next();System.out.println(stu.getId() + " " + stu.getName());}// 使用headSet方法获取并遍历排在stu2对象之前的对象集合it = tree.headSet(stu2).iterator();System.out.println("截取前面部分的集合:");while (it.hasNext()){UpdateStu stu = it.next();System.out.println(stu.getId() + " " + stu.getName());}// 使用subSet方法获取并遍历排在stu2和stu3之间的对象集合(不包括stu3)it = tree.subSet(stu2, true, stu3, false).iterator(); // 注意:subSet方法需要指定是否包含边界点,这里假设你希望包含stu2但不包含stu3// 或者,由于TreeSet的subSet默认不包含结束点,所以只需写tree.subSet(stu2, stu3).iterator();System.out.println("截取中间部分集合:");while (it.hasNext()){UpdateStu stu = it.next();System.out.println(stu.getId() + " " + stu.getName());}}
}

五、程序运行结果

关键字:网页设计与制作总结和体会_2344网页游戏大全_可以免费网络推广网站_seo优化顾问服务

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: