Java底层基于链表如何实现集合和映射(java,编程语言)

时间:2024-05-10 02:10:40 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

在Java底层基于二叉搜索树实现集合和映射中我们实现了底层基于二叉搜索树的集合,本节就底层如何基于链表实现进行学习,注意:此处的链表是之前自己封装的.

1、集合set相关功能

Java底层基于链表如何实现集合和映射

1.1 add()的不同

用于链表本身没有去重的效果,因此我们在做基于链表的集合时,需要对add()方法做一下特殊处理,如下增加一个判断即可。

@Overridepublicvoidadd(Ee){if(!list.contains(e)){list.addFirst(e);}}

2.集合实现

2.1 Set接口定义

/***集合的接口*/publicinterfaceSet<E>{voidadd(Ee);//添加<——<不能添加重复元素voidremove(Ee);//移除intgetSize();//获取大小booleanisEmpty();//是否为空booleancontains(Ee);//是否包含元素}

3.2 基于链表实现集合Set

publicclassLinkedListSet<E>implementsSet<E>{privateLinkedList<E>list;publicLinkedListSet(){list=newLinkedList<E>();}@OverridepublicintgetSize(){returnlist.getSize();}@OverridepublicbooleanisEmpty(){returnlist.isEmpty();}@Overridepublicbooleancontains(Ee){returnlist.contains(e);}@Overridepublicvoidadd(Ee){if(!list.contains(e)){list.addFirst(e);}}@Overridepublicvoidremove(Ee){list.removeElement(e);}}

3.3测试:两本名著的词汇量 和不重复的词汇量

importjava.util.ArrayList;publicclassLinkedListSetTestDemo{publicstaticvoidmain(String[]args){System.out.println("PrideandPrejudice");//新建一个ArrayList存放单词ArrayList<String>words1=newArrayList<>();//通过这个方法将书中所以单词存入word1中FileOperation.readFile("pride-and-prejudice.txt",words1);System.out.println("Totalwords:"+words1.size());LinkedListSet<String>set1=newLinkedListSet<>();//增强for循环,定一个字符串word去遍历words//底层的话会把ArrayListwords1中的值一个一个的赋值给wordfor(Stringword:words1)set1.add(word);//不添加重复元素System.out.println("Totaldifferentwords:"+set1.getSize());System.out.println("-------------------");System.out.println("PrideandPrejudice");//新建一个ArrayList存放单词ArrayList<String>words2=newArrayList<>();//通过这个方法将书中所以单词存入word1中FileOperation.readFile("a-tale-of-two-cities.txt",words2);System.out.println("Totalwords:"+words2.size());LinkedListSet<String>set2=newLinkedListSet<>();//增强for循环,定一个字符串word去遍历words//底层的话会把ArrayListwords1中的值一个一个的赋值给wordfor(Stringword:words2)set2.add(word);//不添加重复元素System.out.println("Totaldifferentwords:"+set2.getSize());}}

结果:

Java底层基于链表如何实现集合和映射

这里需要说明一下就是关于我们统计的单词数只考虑了每个单词组成的不用,并没有对单词的特殊形式做区分。

Java的优点是什么

1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;3. 分布性,Java是面向网络的语言;4. 鲁棒性,java提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。;5. 安全性,用于网络、分布环境下的Java必须防止病毒的入侵。6. 体系结构中立,只要安装了Java运行时系统,就可在任意处理器上运行。7. 可移植性,Java可以方便地移植到网络上的不同机器。8.解释执行,Java解释器直接对Java字节码进行解释执行。

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Java底层基于链表如何实现集合和映射的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Java底层基于二叉搜索树实现集合和映射/集合Set功能详解下一篇:

12 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18