2019独角兽企业重金招聘Python工程师标准>>>

一,Collection集合框架

在实际开发中,将使用的对象存储到特定数据结构的容器中,而JDK提供了这样的容器——集合框架,集合框架中包含了一系列不同数据结构的实现类。

1)Collection常用方法

①int size():返回包含对象的个数,

②boolean isEmpty():返回是否为空,

③boolean contains(Object o):判断是否包含某指定对象,

④boolean add(E e) :向集合中添加对象,

⑤boolean remove(Object o):从集合中删除对象。

2)Collection 与Collections的区别?

Collection是java.util下的接口,是各种集合的父接口,继承于他的接口有list,set。Collections是java.util下的类,是针对集合的帮助类,提供一系列的静态方法,对各种集合进行检索,排序,线程安全化操作。

二,List集合的实现类:ArrayList和LinkedList

List接口是Collection的子接口,用于定义线性表数据结构,元素可以重复,有序的,有索引值。可以将list理解为存储对象的数组,只不过其元素可以动态的增加或减少。

1)List接口有两个实现类:ArrayList和LinkedList。分别用动态数组和链表的方式实现了List接口。List、ArrayList和LinkedList在java.util包下。

2)可以认为ArrayList和LinedList方法在逻辑上是一样的,只是在性能上有一定的差别,ArrayList更适合随机的访问,而LinkedList更适合插入、删除。在性能要求不是特别苛刻的话可以忽略这个差别。

3)使用List我们不需要再集合创建的时候就虑集合的容量,容量是根据保存的元素来决定的,集合的容量可以激动扩充。

4)List的实现类会重写toString方法,依次调用集合中对象的toString方法,返回集合中所包含的对象的字符串。

5)List集合的常用方法:

①add(Object obj):向集合末尾增加新元素,集合可以存放各种类型的元素,但是我们几乎不会向集合中添加不同类型的元素。

②size():返回当前集合中存放元素的数量。

③clear():用于清空集合。

④isEmpty():用于返回集合是否为空。

List list = new ArrayList() ;list.add("Hello") ;list.add("World") ;list.add(1) ;    //不建议这样添加,一个集合最好存放一种类型元素。System.out.println(list.size()) ;    //返回集合中存放元素的数量System.out.println(list) ;    //System.out.println(list.toString());//查看集合中元素//ArrayList()重写了toString()方法,返回的字符串是每个元素的toString()方法返回的序列。list.clear();    //清空,System.out.println("集合清空后的数量"+list.size());System.out.println("集合是否为空?"+list.isEmpty());

⑤contains(Object obj)方法:检查给定的对象是否包含在集合中,检查规则将obj对象与集合中元素进行equals比较,如果对比了所有元素都没有equals为true,则返回false。

⑥boolean remove(Object obj)方法:删除元素,首先不重写equals,在集合中根据对象地址匹配,如果没有匹配到,则不删除,重写equals方法,为内容比较,匹配成功,则删除第一个,则退出,其他的内容即使相同也不会删除。

List list = new ArrayList() ;//多态的写法//ArrayList arraylist = new ArrayList() ;//正常写法list.add(new Point(1,2)) ;   //Point point = new Point(1,2); list.add(point) ;   //等量交换list.add(new Point(3,4)) ;list.add(new Point(5,6)) ;System.out.println("集合中的元素数量:"+list.size()) ;//查看集合中元素System.out.println(list) ;    ==  System.out.println(list.toString());
Point p = new Point(1,2) ;    //定义一个对象System.out.println("查看p是否在集合中存在"+list.contains(p)) ;//不重写equals比较地址为false,重写equals为true。    System.out.println("删除前元素:"+list) ;list.remove(p);System.out.println("删除后集合:"+list) ;

⑦E remove(int index)方法:移除此集合列表中指定位置的元素,向左移动后续元素,为了防止漏删,必须从后往前删。

List list = new ArrayList() ;list.add("Hello") ;list.add("World") ;list.add("World") ;list.add("Hello") ;//相邻的元素删不掉for(int i=0;i<list.size();i++){if("Hello".equals(list.get(i))list.remove(i) ;}//匹配的都删干净,从后往前删for(int i=list.size()-1;i>=0;i--){if("Hello".equals(list.get(i)) ;list.remove(i) ;}

⑧addAll(Collection c)方法:允许将c对应的集合元素都存入到该集合,即并集。这里的参数是Collection,即任何元素类型都可以将元素存入到其他集合中。

⑨removeAll(Collection c)方法:删除与另一个集合中相同的元素。它的相同逻辑通过equals判断。

10,retainAll(Collection c)方法:保留与另一个集合相同的元素,即取交集,它的相同逻辑通过equals判断。

list1.addAll(list2) ;    //将list3集合中元素存入到list1集合,表示并集
list1.removeAll(list3) ;    //将list1集合中元素中的list3集合中相同(equals为true)元素删除
list1.retainAll(list2) ;   //将list1与list2集合中相同元素保留通过equals为true判断。

11,Object get(int index)方法:根据元素下标取得对应位置的元素并返回,这里元素下标和数组一样。

12,add(int index,Object newElement())方法:使用add的重载方法,向index位置插入newElement(),原位置的元素向后移,即所谓插队。

13,Object remove(int index)方法:根据下标删除对应元素,并返回被删除元素。

14,Comparable接口:针对对象数据和集合中元素进行排序时,首先要确定对象元素的比较逻辑。Comparable接口用于表示对象间的大小关系。

15,Comparator接口:比较器。创建步骤:A,定义一个类实现Comparator接口。B,实现接口中的抽象compara(E 01,E 02)方法,C,实例化这个类即实例化比较器,D,调用collections重载方法 sort(Collection c,Comparator comparator)进行排序,

转载于:https://my.oschina.net/bugkiller/blog/657186

Collection集合框架相关推荐

  1. java中集合什么时候有索引,JavaSE中Collection集合框架學習筆記(1)——具有索引的List...

    前言:因為最近要重新找工作,Collection(集合)是面試中出現頻率非常高的基礎考察點,所以好好惡補了一番. 復習過程中深感之前的學習不系統,而且不能再像剛畢業那樣死背面試題,例如:String是 ...

  2. java之集合框架一Collection接口

    1.集合的由来: 我们学习的是面向对象的语言.而面向对象语言对事物的描述是通过对象体现的.为了方便对多个对象进行操作,我们就必须把多个对象进行存储.而要想存储多个对象,就不能是一个基本的变量,而应该是 ...

  3. Java集合框架之Collection集合

    为什么80%的码农都做不了架构师?>>>    一.引言 Java集合框架和IO框架一样,看似很庞杂的体系框架,但是当你逐一深入每个集合的用法后,就能明显的看出他们之间的区别和联系. ...

  4. java list api_Java核心API -- 6(Collection集合List、Set、ArrayList、HashSet)

    1. Collection集合框架 Java.util.Collection接口 |--List子接口 |--ArrayList实现类 |--LinkedList实现类 |--Vector实现类 |- ...

  5. Conlletion集合框架总结大全

    Collection 集合框架 教学目标: 1.数组.对象数组.集合框架区别 2.为什么需要集合框架? 3.Collection接口 3.1List接口 3.2Set接口 3.3Queue接口 3.4 ...

  6. java万物之源——集合框架

    Collection集合框架体系图 方法 描述 add(E e) 向集合添加单个数据,添加成功返回true,否则返回false addAll(Collection<? extennds E> ...

  7. Java集合框架系列教程三:Collection接口

    翻译自:The Collection Interface 一个集合表示一组对象.Collection接口被用来传递对象的集合,具有最强的通用性.例如,默认所有的集合实现都有一个构造器带有一个Colle ...

  8. (Java集合框架)集合框架概述和Collection常用功能及遍历

    文章目录 集合概述 集合框架 Collection 常用功能 代码演示 集合遍历 Iterator接口 迭代器的实现原理 增强for 代码演示 集合概述 集合:集合是java中提供的一种容器,可以用来 ...

  9. Java 集合框架 : Collection、Map

    1. Collection接口是Java集合框架的基本接口,所所有集合都继承该接口. 1.1 方法 : public interface Collection<E> extends Ite ...

最新文章

  1. Confluence 6 CSS 编辑技巧
  2. 爱奇艺称告别唯流量时代 正式关闭显示前台播放量
  3. 原型设计(结对第一次)
  4. 【nginx运维基础(4)】Nginx的日志管理(日志格式与定时分割日志)
  5. ssl提高组周四备考赛【2018.11.1】
  6. python字符串乘一个数_Python--初识庐山真面目
  7. 页面用ajax实现简单的连接数据库
  8. 构建之法第四章学习心得
  9. Atitit 常用比较复杂的图像滤镜 attilax大总结
  10. iqooneo系统要不要更新_手机系统要不要升级?别纠结,1分钟看完你就知道
  11. java核心技术 第11版 集合
  12. android深色模式省电吗,护眼又省电,深色模式真这么厉害?
  13. 03-ES6语法:模板字面量(Template Literals)
  14. python布尔系列_python-布尔运算
  15. 要怎样申请抖音蓝V认证?详谈蓝V认证的步骤
  16. QT从下载到安装的具体教程
  17. 用iPhone开高达:日本推出可驾驭的真实重型机甲
  18. js 控制输入框禁止使用输入法
  19. C#生成条形码图片的简单方法
  20. Ubuntu系统管理 —— 磁盘的初始化及自动挂载

热门文章

  1. 计算机学院品牌活动,安阳师范学院 计算机学院成功举办校园文化品牌活动“一月一赛”之三笔字比赛...
  2. k折交叉验证matlab 流程_第51集 python机器学习:分层K折交叉验证及其他方式
  3. 华为鸿蒙生态最新消息,魅族加入华为鸿蒙生态?大家先别高兴,此鸿蒙非彼鸿蒙...
  4. C语言丨检测用户键盘输入数据的合法性
  5. ffmpeg视频播放流程
  6. tcxgrid主从结构显示多行_快速跟随型主从结构多电机同步控制
  7. php怎么将网页另存为mht代码,mht转html代码(php)
  8. MongoDB shell
  9. C语言 VS快速输入main函数
  10. opencv-api boxPoints