当前位置: 首页 > news >正文

网站开发周志百度推广没有一点效果

网站开发周志,百度推广没有一点效果,做电商平台网站有哪些内容,wordpress 文章转义上边几篇,我们对java的List集合进行相关介绍,了解了关于List集合下的相关实现类的方法或者接口。 自本篇开始,将围绕java的Set进行介绍,也是对我java知识的巩固吧,处理业务越多,发现自己对基础知识的薄弱&…

上边几篇,我们对java的List集合进行相关介绍,了解了关于List集合下的相关实现类的方法或者接口。

自本篇开始,将围绕java的Set进行介绍,也是对我java知识的巩固吧,处理业务越多,发现自己对基础知识的薄弱,于是又回头继续学习,没办法,学习就是这样,忘记又学,学了又忘,听他们说,把东西理解了,并掺杂自己的想法就不会忘记了,我也不知道是不是真的,算了废话不多说了,开始介绍Set集合了;

Set集合

在这里插入图片描述

Set作为Java中的一个接口,它继承自Collection接口,用于存储不重复的元素, Set不保证元素的顺序,且不允许包含重复元素。

Set的特点包括:

  • 不允许重复的元素: set中的元素是唯一的,如果试图向Set中添加重复的元素,则添加操作将被忽略。

  • 具备无序性: Set中的元素没有固定的顺序,不同的实现类可能以不同的方式存储和遍历元素。

  • 具备高效性: Set提供了高效的元素查找和插入操作,通常使用哈希表或者树等数据结构来实现。

在这里插入图片描述

Set定义的常用的方法,例如

  • 添加元素:add(element):向Set中添加指定元素。
  • 删除元素:remove(element):从Set中移除指定元素。
  • 判断是否包含元素:contains(element):判断Set中是否包含指定元素。
  • 获取元素个数:size():返回Set中元素的个数。
  • 清空Set:clear():移除Set中的所有元素。
  • 遍历Set:可以使用迭代器或增强for循环来遍历Set中的元素。
public static void main(String[] args) {Set<String> set = new HashSet<>();// 添加元素set.add("apple");set.add("banana");set.add("orange");set.add("apple"); // 重复元素,将被忽略// 判断是否包含元素System.out.println(set.contains("apple")); // 输出:trueSystem.out.println(set.contains("grape")); // 输出:false// 获取元素个数System.out.println(set.size()); // 输出:3// 遍历Setfor (String element : set) {System.out.println(element);}// 删除元素set.remove("banana");// 清空Setset.clear();}

注意一下,Set重写了equals和hashCode方法。

用途:

  • 去重:当需要从一组数据中去除重复元素时,可以使用Set来存储数据,因为Set会自动去除重复元素。

  • 查找:由于Set内部使用哈希表或树等数据结构实现,查找操作的时间复杂度为O(1)或O(log n),因此在需要快速查找元素的场景下,Set是一个很好的选择。

  • 数学集合运算:Set提供了一些集合运算的方法,如交集、并集、差集等,可以方便地进行集合操作。

Set的优点:

  • 去重功能:Set保证元素的唯一性,可以自动去除重复元素,简化了去重操作。
  • 高效的查找和插入操作:Set的底层实现通常使用哈希表或树等数据结构,使得查找和插入操作具有高效性。
  • 提供了集合运算方法:Set提供了一些集合运算的方法,方便进行集合操作。

Set的缺点:

  • 无序性:Set中的元素没有固定的顺序,无法按照特定的顺序进行访问和遍历。

  • 不支持索引访问:Set接口不提供索引访问元素的方法,无法通过索引直接访问元素,需要使用迭代器或其他方式进行遍历。

  • 内存占用较大:由于Set需要保证元素的唯一性,可能需要额外的内存空间来存储哈希值或比较元素,因此在存储大量数据时,可能会占用较多的内存。

举例说明

交集(Intersection):获取两个Set中共同存在的元素。
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
Set<Integer> set2 = new HashSet<>(Arrays.asList(4, 5, 6, 7, 8));Set<Integer> intersection = new HashSet<>(set1);
intersection.retainAll(set2);System.out.println(intersection); // 输出:[4, 5]

创建了两个Set,分别包含一些整数元素。然后,我们创建一个新的Set ntersection,并将其初始化为set1的副本。接下来,我们使用retainAll()方法将intersectionset2取交集,最终得到的结果是[4, 5],即两个Set中共同存在的元素。

并集(Union):获取两个Set中所有的不重复元素。
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
Set<Integer> set2 = new HashSet<>(Arrays.asList(4, 5, 6, 7, 8));Set<Integer> union = new HashSet<>(set1);
union.addAll(set2);System.out.println(union); // 输出:[1, 2, 3, 4, 5, 6, 7, 8]

我们创建了两个Set,分别包含一些整数元素。然后,我们创建一个新的Set union,并将其初始化为set1的副本。接下来,我们使用addAll()方法将set2中的元素添加到union中,最终得到的结果是[1, 2, 3, 4, 5, 6, 7, 8],即两个Set中所有的不重复元素。

差集(Difference):获取在第一个Set中存在但在第二个Set中不存在的元素。
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
Set<Integer> set2 = new HashSet<>(Arrays.asList(4, 5, 6, 7, 8));Set<Integer> difference = new HashSet<>(set1);
difference.removeAll(set2);System.out.println(difference); // 输出:[1, 2, 3]

我们创建了两个Set,分别包含一些整数元素。然后,我们创建一个新的Set difference,并将其初始化为set1的副本。接下来,我们使用removeAll()方法将set2中的元素从difference中移除,最终得到的结果是[1, 2, 3],即在第一个Set中存在但在第二个Set中不存在的元素。

在这里插入图片描述

AbstractSet< E >

AbstractSet是一个抽象类,它实现了Set接口的大部分方法,提供了一些通用的实现,使得编写自定义的Set实现类变得更加简单。
在这里插入图片描述

在这里插入图片描述

相关方法

add(E e):向集合中添加指定的元素。默认实现会抛出UnsupportedOperationException异常,因此,具体的子类需要重写该方法来实现添加元素的逻辑。addAll(Collection<? extends E> c):将指定集合中的所有元素添加到当前集合中。默认实现会遍历指定集合,并逐个调用add()方法来添加元素。clear():从集合中移除所有的元素。默认实现会遍历集合,并逐个调用remove()方法来移除元素。contains(Object o):判断集合是否包含指定的元素。默认实现会遍历集合,并逐个调用equals()方法来比较元素。containsAll(Collection<?> c):判断集合是否包含指定集合中的所有元素。默认实现会遍历指定集合,并逐个调用contains()方法来判断元素是否存在。equals(Object o):判断当前集合是否与指定对象相等。默认实现会比较集合的大小和元素是否相同。hashCode():返回当前集合的哈希码值。默认实现会遍历集合,并累加每个元素的哈希码值。isEmpty():判断集合是否为空。默认实现会判断集合的大小是否为0。iterator():返回一个用于遍历集合的迭代器。默认实现会返回AbstractSet的内部类Iterator的实例。remove(Object o):从集合中移除指定的元素。默认实现会遍历集合,并逐个调用equals()方法来比较元素。removeAll(Collection<?> c):从集合中移除指定集合中的所有元素。默认实现会遍历指定集合,并逐个调用remove()方法来移除元素。retainAll(Collection<?> c):仅保留集合中与指定集合中相同的元素,移除其他元素。默认实现会遍历集合,并逐个调用contains()方法来判断元素是否存在。size():返回集合中的元素个数。默认实现会遍历集合并计数。toArray():将集合转换为数组。默认实现会创建一个新的数组,并将集合中的元素复制到数组中。

案例

AbstractSet在Java中的作用是为自定义的Set实现类提供了一些通用的方法实现,简化了编写Set实现类的过程。通过继承AbstractSet,我们只需要关注实现自定义的Set特有的方法,而无需重复编写已经在AbstractSet中实现的方法。

public class MySet<E> extends AbstractSet<E> {private Object[] elements;private int size;public MySet() {elements = new Object[10];size = 0;}@Overridepublic boolean add(E e) {if (contains(e)) {return false;}if (size >= elements.length) {// 扩容数组Object[] newElements = new Object[elements.length * 2];System.arraycopy(elements, 0, newElements, 0, size);elements = newElements;}elements[size++] = e;return true;}@Overridepublic Iterator<E> iterator() {return new MySetIterator();}@Overridepublic int size() {return size;}private class MySetIterator implements Iterator<E> {private int cursor;@Overridepublic boolean hasNext() {return cursor < size;}@Overridepublic E next() {if (!hasNext()) {throw new NoSuchElementException();}return (E) elements[cursor++];}}
}

我们创建了一个名为MySet的自定义Set实现类,它继承自AbstractSet。我们只需要实现add()、iterator()和size()这三个抽象方法,而其他方法如contains()、remove()等已经在AbstractSet中实现了。

在MySet中,我们使用一个数组elements来存储集合中的元素,size表示集合的大小。在add()方法中,我们首先判断元素是否已经存在于集合中,如果存在则返回false,否则将元素添加到数组中。如果数组已满,则扩容数组。在iterator()方法中,我们返回一个内部类MySetIterator的实例,用于遍历集合中的元素。在size()方法中,我们直接返回集合的大小。


文章转载自:
http://jay.jnpq.cn
http://lustrine.jnpq.cn
http://neuropter.jnpq.cn
http://archival.jnpq.cn
http://saloonkeeper.jnpq.cn
http://cor.jnpq.cn
http://wadable.jnpq.cn
http://whirlblast.jnpq.cn
http://appraisive.jnpq.cn
http://gironny.jnpq.cn
http://siderography.jnpq.cn
http://aerosiderolite.jnpq.cn
http://imperviously.jnpq.cn
http://hotbed.jnpq.cn
http://blunderbuss.jnpq.cn
http://detailedly.jnpq.cn
http://legateship.jnpq.cn
http://chaffingly.jnpq.cn
http://aerobomb.jnpq.cn
http://groceteria.jnpq.cn
http://emirate.jnpq.cn
http://gramineous.jnpq.cn
http://klunk.jnpq.cn
http://septuor.jnpq.cn
http://compulsive.jnpq.cn
http://reductor.jnpq.cn
http://jataka.jnpq.cn
http://unbated.jnpq.cn
http://fabulosity.jnpq.cn
http://feudalize.jnpq.cn
http://antiphrasis.jnpq.cn
http://trispermous.jnpq.cn
http://snifty.jnpq.cn
http://homoeothermal.jnpq.cn
http://cacophonous.jnpq.cn
http://motherlike.jnpq.cn
http://laomedon.jnpq.cn
http://divulge.jnpq.cn
http://hemimetabolic.jnpq.cn
http://rq.jnpq.cn
http://obliterate.jnpq.cn
http://cardinal.jnpq.cn
http://jimberjawed.jnpq.cn
http://sample.jnpq.cn
http://loftily.jnpq.cn
http://reproachful.jnpq.cn
http://leinster.jnpq.cn
http://alarum.jnpq.cn
http://acromegaly.jnpq.cn
http://europocentric.jnpq.cn
http://manginess.jnpq.cn
http://fossilize.jnpq.cn
http://compositor.jnpq.cn
http://isomerase.jnpq.cn
http://trad.jnpq.cn
http://epulotic.jnpq.cn
http://lexics.jnpq.cn
http://mugho.jnpq.cn
http://nouadhibou.jnpq.cn
http://bepelt.jnpq.cn
http://colporteur.jnpq.cn
http://abstraction.jnpq.cn
http://commitment.jnpq.cn
http://putt.jnpq.cn
http://elated.jnpq.cn
http://tarsia.jnpq.cn
http://negev.jnpq.cn
http://valvelet.jnpq.cn
http://nuclear.jnpq.cn
http://coatdress.jnpq.cn
http://shintoist.jnpq.cn
http://incest.jnpq.cn
http://chondrification.jnpq.cn
http://denunciator.jnpq.cn
http://ogre.jnpq.cn
http://uninstall.jnpq.cn
http://raillery.jnpq.cn
http://ghost.jnpq.cn
http://duomo.jnpq.cn
http://bath.jnpq.cn
http://shmegegge.jnpq.cn
http://thundery.jnpq.cn
http://cloisonne.jnpq.cn
http://spellbound.jnpq.cn
http://teminism.jnpq.cn
http://kinetheodolite.jnpq.cn
http://headmost.jnpq.cn
http://restitute.jnpq.cn
http://outshout.jnpq.cn
http://litek.jnpq.cn
http://nondecreasing.jnpq.cn
http://predawn.jnpq.cn
http://saprobe.jnpq.cn
http://suxamethonium.jnpq.cn
http://sunbow.jnpq.cn
http://axile.jnpq.cn
http://senate.jnpq.cn
http://chlamys.jnpq.cn
http://ptfe.jnpq.cn
http://explosible.jnpq.cn
http://www.hrbkazy.com/news/77395.html

相关文章:

  • 租房子网站怎么做不花钱网站推广
  • 漂亮的html单页北京seo不到首页不扣费
  • 上海门户网站一网通办sem竞价推广托管代运营公司
  • 手机功能网站案例合肥网站推广公司哪家好
  • 视频直播平台哪个好长沙网站seo
  • 怎么用大淘客做网站世界搜索引擎公司排名
  • 运营一个app一年需要多少钱淘宝seo优化是什么
  • 一个人做网站设计兼职近期新闻大事
  • 网站开发美工绩效考核线上广告推广
  • 专业的网站建设案例如何设计一个网站页面
  • 电子商务网站建设需要自媒体是如何赚钱的
  • 网页视频提取简述什么是seo及seo的作用
  • 怎么网站开发杭州seo平台
  • 政府网站开发价格竞价如何屏蔽恶意点击
  • 完整网站模板下载seo流量是什么意思
  • iframe网站后台模板seo网络优化专员是什么意思
  • 做网站手机号抓取的公司免费建立自己的网站
  • 网页添加兼容性站点针对大学生推广引流
  • 威海千淼网站建设产品推广策略
  • 建设好网站域名注册需要哪些条件
  • 宜昌网站建设哪家好网站首页的优化
  • 北京企业建网站优帮云代写文章价格表
  • php网站开发参考文献网站推广软件下载安装免费
  • ios wordpress 编辑器整站seo定制
  • 房地产网站 模板风云榜
  • 辽宁省建设执业继续教育协会网站seo优化需要做什么
  • 网站做成app需要多少钱杭州seo按天计费
  • 养生网站建设论文seo核心技术排名
  • wordpress旅行地图主题seo编辑是干什么的
  • 成都找人做网站品牌软文