1、首先搞明白容器Collection和collections的区别

Collection是一个接口集合,继承Collection的类主要有List,Set和Queue;

Collections是集合类的一个工具类,提供了许多静态方法,用于集合元素中的排序、搜索以及现场呢个安全等各种操作。

2、this的用法

一直以来对this的用法很模糊,这里做一个总结,说说自己对this的理解。

1)this用来指代自己所在类的属性和方法。举个例子:

public class ThisDemo {String name="Nick";public void print(String name){System.out.println("这个类中的名字: "+this.name);System.out.println("局部变量中的名字: "+name);}public static void main(String[] args){ThisDemo td=new ThisDemo();td.print("cena");}
}

运行结果为:

这个类中的名字: Nick
局部变量中的名字: cena

2)还可以在一个类中定义两个构造参数,在一个构造参数中通过this引用来定义另一个构造参数。例如:

public class NameAndAge {private String name;private int age;public NameAndAge(){this.age=24;}public NameAndAge(String name,int age){this();this.name=name;}public void print(){System.out.println("最终的姓名:" +name);System.out.println("最终的年龄: "+age);}public static void main(String[] args){NameAndAge naa=new NameAndAge("cena",20);naa.print();}
}

运行结果为:

最终的姓名:cena
最终的年龄: 24

分析:在这个程序中有一个无参构造器和一个有两个参数的构造器,在两个参数的构造器中调用了无参构造器,可见在实例化这个类时,输入的年龄并未其作用,而是调用了this所在类中的年龄定义。

3、Collection容器中,List必须按照插入的顺序保存元素,但是Set不能有重复元素,Queue按照排队规则来确定对象产生的顺序;

Map允许用键值对来查找值。

4、Arrays.asList()方法接受一个数组或是一个用逗号分隔的元素列表,并将其转换为一个List对象。

5、Collections.addAll()方法接受一个Collection对象,以及一个数组或是一个用逗号分割的列表,将元素添加到Collection中。例如:

public class AddingGroups {public static void main(String[] args){Collection<Integer> collection=new ArrayList<Integer>(Arrays.asList(1,2,3,4,5));//将元素列表(1,2,3,4,5)转化为List添加到collection中Integer[] moreInts={6,7,8,9,10};collection.addAll(Arrays.asList(moreInts));//将数组转化为list添加到collection中,而Collections.AddAll()方法接受一个Colletion对象,以及一个                                                    数组或是一个用逗号分隔的列表,将元素添加到Collection中//collection.addAll(collection,11,12,13,14,15);//collection.addAll(collection,moreInts);List<Integer> list=Arrays.asList(16,17,18,19,20);list.set(1, 99);//将第一个位置的数设为99System.out.println(collection);System.out.println(list);}
}

运行结果为:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[16, 99, 18, 19, 20]

6、Collection容器包括:List,以特定的耗损需保存一组元素;Set,元素不能重复;Queue,只允许在容器的一“端 ”插入对象,并从另一“端”移除对象。

Map在每个槽内保存了两个对象,即键和与之相关联的值。

7、ArrayList和LinkList都是List类型,都是按照被插入的顺序保存元素,不同之处在于LinkList包含的操作多于ArrayList。

HashSet、TreeSet和LinkedHashSet都是Set类型,每个相同的项只保存一次,但是三者实现元素存储的方式不同,HashSet使用的是相当复杂并且是最快的获取元素     的方式;如果存储顺序很重要,可以使用TreeSet,它按照比较结果的升序保存对象;LinkedHashSet按照被添加的顺序保存对象。

8、对于每一个键,Map只接受存储一次,Map.put(Key,Value)方法增加想要的对象,Map.get(Key) 方法将产生与这个键相关联的值。

HashMap提供了最快的查找技术,没有按照任何明显的顺序来保存其元素;TreeMap按照比较结果的升序保存键;LinkedHashMap按照插入顺序保存键,同时还保留了     HashMap的查询速度。

举例说明:

public class PrintingContainers {static Collection fill(Collection<String> collection){collection.add("rat");collection.add("cat");collection.add("dog");collection.add("dog");return collection;}static Map fill(Map<String,String> map){map.put("rat", "Fuzzy");map.put("cat", "Rags");map.put("dog", "Bosco");map.put("dog", "Spot");return map;}public static void main(String[] args){System.out.println(fill(new ArrayList<String>()));System.out.println(fill(new LinkedList<String>()));System.out.println(fill(new HashSet<String>()));System.out.println(fill(new TreeSet<String>()));System.out.println(fill(new LinkedHashSet<String>()));System.out.println(fill(new HashMap<String,String>()));System.out.println(fill(new TreeMap<String,String>()));System.out.println(fill(new LinkedHashMap<String,String>()));}
}

运行结果为:

[rat, cat, dog, dog]
[rat, cat, dog, dog]
[dog, cat, rat]
[cat, dog, rat]
[rat, cat, dog]
{dog=Spot, cat=Rags, rat=Fuzzy}
{cat=Rags, dog=Spot, rat=Fuzzy}
{rat=Fuzzy, cat=Rags, dog=Spot}

分析:

Collection用方括号扩住,Map用大括号扩住。

转载于:https://www.cnblogs.com/qducn/p/6218448.html

接口基本知识 2016年12月24日相关推荐

  1. 2016年12月29日 星期四 --出埃及记 Exodus 21:24

    2016年12月29日 星期四 --出埃及记 Exodus 21:24 eye for eye, tooth for tooth, hand for hand, foot for foot, 以眼还眼 ...

  2. 分析当今(2016年12月13日)社交三巨头:微信、whatsapp、line

    前言 最近都在学习和探讨即时通讯这方面的知识,准备会写即时通讯这系列的文章,包括对其他 IM 项目的探讨,第三方即时通讯的使用到最后自己开发即时通讯的项目,其中的周期会很长,不过还是值得探研的,因为社 ...

  3. 如何利用大数据做金融风控? 原创 2016年11月24日 17:42:03 标签: 大数据 / 金融 / 风控 1594 导语:如何通过海量数据与欺诈风险进行博弈? 随着金融科技、科技金融等概念的

    如何利用大数据做金融风控? 原创 2016年11月24日 17:42:03 标签: 大数据 / 金融 / 风控 1594 导语:如何通过海量数据与欺诈风险进行博弈? 随着金融科技.科技金融等概念的热起 ...

  4. 按冯诺依曼提出的计算机类型,2011年12月24日计算机一级考试题目广西

    <2011年12月24日计算机一级考试题目广西>由会员分享,可在线阅读,更多相关<2011年12月24日计算机一级考试题目广西(13页珍藏版)>请在人人文库网上搜索. 1.全国 ...

  5. 梦想世界2014年5月29日服务器维护公告,《梦想世界3D》2016年12月29日维护内容

    <梦想世界3D>2016年12月29日维护内容 2016-12-28 作者:说玩小编 来源:说玩网 评论(9条) 我要评论 [优化调整] 1.元旦活动 1)万物复苏:12月31日10:00 ...

  6. 紫禁繁花服务器维护,梦幻西游手游2016年12月28日维护公告

    梦幻西游手游2016年12月28日维护公告,小编为大家带来梦幻西游手游2016年12月28日维护公告,希望可以帮助到各位小伙伴们. 亲爱的玩家朋友: 为保证服务器的运行稳定和服务质量,<梦幻西游 ...

  7. 清华大学教评中心 <jpxzx2019@mail.tsinghua.edu.cn> 12月24日9:00-11:10试讲评审材料(庞观和朱峰老师)

    ➤01 邮件通知 卓老师好!感谢您担任线上试讲评审专家! 1.评审时间: 2020年12月24日(周四)9:00-11:10 2.试讲教师及内容: 12月24日 上 午 上午 试讲时间 9:00-10 ...

  8. 令人振奋的好消息!2016年12月8日Google Developers中文网站发布!

    令人振奋的好消息! 2016年12月8日Google Developers中文网站发布! 以往我们需要访问Android的开发网站.Google的开发网站都需要翻墙,苦不堪言.现在Google发布了中 ...

  9. BitCherry测试网络将于12月24日12:00上线

    据官方消息,BitCherry测试网络v1.0.1版本将于新加坡时间12月24日12:00点开启测试.BitCherry作为基于IPv8技术服务于商业的可扩容区块链基础设施,一直以来专注于定义和提供最 ...

最新文章

  1. linux完美卸载mysql,Linux下彻底卸载mysql详解
  2. 石正丽/周鹏团队发表冠状病毒新研究,进一步证明新冠非实验室泄漏
  3. hadoop文件存储位置_Hadoop文件的存储格式实例详解
  4. 13、logging模块
  5. 开发常见单词Java
  6. 电子测量与仪器第四版pdf_准确选择表面粗糙度仪的测量参数应该从哪些地方着手好【电子仪器吧】...
  7. 如何用excel做正交分析_使用Excel进行有交互作用的正交设计方差分析
  8. ASP.NET实现增删改查等功能(Access版)系统之一
  9. matlab仿真二元等幅边射阵,MATLAB仿真天线阵代码.doc
  10. ARM、DSP、FPGA的技术特点和区别
  11. mysql57数据库命令_centos7.2下安装mysql5.7数据库的命令详解
  12. js-事件处理(重点)
  13. photoshop 证件照动作_国考报名确认及缴费进行中!证件照上传注意事项!
  14. Qt制作QQ好友列表
  15. java protected 构造方法_Java中protected语义解释
  16. HTML+CSS大作业:旅游网页设计与实现——旅游风景网站6页HTML+CSS+JavaScript实训大作业 HTML+CSS大作业 HTML期末大作业
  17. 带你了解一下什么是SaaS平台
  18. 什么是平衡二叉树和平衡二叉树的高度达到O(log2n)最少需要结点数为n
  19. 3DMM(3D Morphable Model)原理和实现
  20. 拼多多开店有哪些优势?

热门文章

  1. 求助如何写这种复杂的影射关系文件
  2. 【活动报名】大数据的流向,究竟去向何处?——深圳站
  3. 无痕模式后如何找到历史_辞职后,如何找到合适的工作?
  4. 年后“离职潮”来袭,跳槽不注意这些亏大了!
  5. MyBatis动态sql之choose(when、otherwise)用法
  6. 因素分析(Factor Analysis)
  7. Xftp连接失败,解决办法
  8. MySQL经典练习题及答案,常用SQL语句练习50题,题目转自别人, 答案自己做的
  9. 小娴的男友小旭不幸患了一种怪病,这种怪病吞噬了他的大部分记忆,同时让他突然间不会书写符合正确语序的英文。神奇的是,虽然他写出的句子看上去杂乱无章,不过经过仔细分析可以发现,如果把单词的顺序倒过来,语法
  10. (十四)全解MySQL之各方位事无巨细的剖析存储过程与触发器!