1.集合框架

  a.框架:为了实现某一目的或功能,而预先提供的一系列封装好的、具有继承或实现关系的类与集合

  b.集合:①定义:Java中对一些数据结构和算法进行封装,即封装(集合也是一种对象)

      ②特点:元素类型可以不同,集合长度可变,空间不固定

  c.集合框架:提供了管理集合的接口和类

2.Collection 与 Collections

  a.Collection:是一个接口,装东西的集合接口 (核心接口)

  b.Collections:是一个算法类,操作即可的算法类

3.Collection

  Collection(核心接口):a.List(列表):①ArrayList

                     ②LinkedList

              b.Set(集):HashSet

              c.Map(映射):①HashMap

                      ②Properties

4.List——列表

  a.特点:①线性(有序,元素的放入顺序和元素的存储顺序保持一致)

      ②表现上,List最大的特点就是有下标

  b. ArrayList:就是作为一个数组的封装出现的,底层就是数组

  c. LinkedList:底层封装的是一个双向链表

  d.应用:①当需要做大量的查询动作的时候,使用ArrayList

      ②当需要做大量的增加删除动作(特别是往中间增删),使用LinkedList

  e.方法:①声明:

LinkedList<StudentBean> lst = new LinkedList<StudentBean>();

        注:泛型:用来控制集合只能操作某一种数据类型<>

      ②增添:

lst.add("  ");
lst.add(new Date());
lst.add(new StudentBean("zhao4",32,76));
lst.add(100);

      ③长度:

int size = lst.size();

      ④修改:

lst.set(0, new StudentBean("zhang3feng",102,45));

      ⑤删除:

lst.remove(0);

      ⑥获取某个元素:

StudentBean stu = (StudentBean)lst.get(1);
StudentBean stu = lst.get(1);    //加上泛型不需强转

      ⑦遍历:

        方法一:使用普通for循环

        方法二:使用迭代器---Iterator完成遍历----是集合框架类Collection直接分支专用(特点:没有下标,从头到尾走一遍)

Iterator<StudentBean> it = lst.iterator();
while(it.hasNext()){
StudentBean tmpStu = it.next();
System.out.println(tmpStu.getName());
}

        方法三:for-each循环:底层封装的就是迭代器,但语法更简单,还可以操作数组

for(StudentBean tmpStu : lst){
System.out.println(tmpStu.getName());
}

5.Set——集

  a.特点:①不能放置重复元素、无序

      ②表象上,Set没有下标

  b.HashSet 的不重复性判断:

    ①调用equals方法得到两个对象比较为true

    ②两个元素的hashcode值保持一致

  c.方法:

    ①增添:

set.add("hello");
set.add(new Date());
set.add(new StudentBean("zhang3",18,80));
set.add(200);

    ②长度:

int size = set.size();

    ③删除:只能根据对象进行删除,还是用的equals和hashCode来判断到底删除哪个对象

set.remove(new StudentBean("zhang3",18,80));

    ④修改(没有修改方法)

    ⑤遍历:

      1.不支持普通for循环

      2.支持迭代器

      3.支持for-each

6.Map——映射

  a.特点:①键值对。键要求唯一,值可以重复

      ②放入元素的顺序和存储顺序无关

  b.常用子类:HashMap(主要用于集合操作)、Properteis(专用于操作属性文件)

  c.方法:

    ①声明:

HashMap<String, StudentBean> map = new HashMap<String, StudentBean>();

    ②增添:

map.put("j34001", new StudentBean("zhang3",18,80));

    ③长度:

int size = set.size();

    ④修改:

map.put("j34001", new StudentBean("zhao6",24,75));

    ⑤删除:

map.remove("j34003");        //通过键去移除元素

    ⑥获取指定元素对象:

StudentBean stu = map.get("j34003");

    ⑦遍历:不能同时遍历键和值,只能分开遍历

      遍历键:

Set<String> keySet = map.keySet();        //得到所有的键,装入一个Set集合中,返回给调用者
for(String key : keySet){
System.out.println(key);
}

      遍历值:

Collection<StudentBean> allStus = map.values();        //得到所有的值,装入一个Collection集合中,返回给调用者
for(StudentBean tmpStu : allStus){
System.out.println(tmpStu.getName());
}

7.Collections工具类

  a.Collections 与 Arrays:

    ①Collections:操作集合

    ②Arrays:操作数组

  b.方法:

System.out.println(Collections.max(lst));        //求最大

System.out.println(Collections.min(lst));        //求最小

Collections.sort(lst);        //排序(只能传List)自带内部比较器

Collections.sort(lst,new StudentComparator());        //排序  提供外部比较器

Collections.reverse(lst);        //反转

Collections.shuffle(lst);        //混排--随机打乱排序

8.比较器:

  a.Comparable:内部比较器

  b.Comparator:外部比较器

  c.注意:Comparable 中的 ComparaTo()方法中,返回的正数、负数,依赖于根据比较规则两个元素的位置之差

Java 之 集合框架(JCF)的更多相关文章

  1. java的集合框架最全详解

    java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作 ...

  2. java.util 集合框架集合

    java的集合框架为程序提供了一种处理对象组的标准方式.设计了一系列标准泛型接口: ⑴Collection ()接口,扩展了Iterable接口,位于集合层次结构的顶部,因此所有的集合都实现Colle ...

  3. Java基础——集合框架

    Java的集合框架是Java中很重要的一环,Java平台提供了一个全新的集合框架.“集合框架”主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型.Java平台的完整集合框架如下图所示: 上 ...

  4. java的集合框架之一

    java是一套很成熟的东西,很多商用的东西都喜欢用它,用的人多,稳定.不过一般也不怎么说起它,因为太常见了,私下里说,写java应用层得就像农民工,每一处都是搭积木,根据设计师的东西如何优雅地搭好积木 ...

  5. 浅谈Java的集合框架

    浅谈Java的集合框架 一.    初识集合 重所周知,Java有四大集合框架群,Set.List.Queue和Map.四种集合的关注点不同,Set 关注事物的唯一性,List 关注事物的索引列表,Q ...

  6. java的集合框架set 和map的深入理解

    Java的集合框架之Map的用法详解 Map有两种比较常用的实现:HashMap 和 TreeMap. HashMap: HashMap 也是无序的,也是按照哈希编码来排序的,允许使用null 值和n ...

  7. Java 高级-集合框架

    参考资料 参考 HashMap 类似 C++ 中的 STL 标准模板库,Java 也在 java.util 包中封装了一套常用数据结构及其算法,称为集合框架.所有的集合框架都包含如下内容: 接口:代表 ...

  8. Java的集合框架综述

    集合 用于存储和管理数据的实体被称为数据结构(data structure).数据结构可用于实现具有不同特性的集合对象,这里所说的集合对象可以看作一类用于存储数据的特殊对象. 集合内部可以采用某种数据 ...

  9. 十五、Java基础---------集合框架体系以及List

    在介绍集合之前先说一下数组,正如我们所知,数组是某一类型数据的集合,强调的是数据,而且必须单一:集合框架的不同之处在于存储的数据类型没有任何限制,既可以存储基本数据类型(会自动提升为相应的包装类)也可 ...

随机推荐

  1. cookie操作简单实现

    var Cookie = { get:function(key){ var reg = new RegExp('(?:^| )' + key + '=([^;]+)(?=;|$)','gi'); re ...

  2. 如何查看编译安装的lnmp环境各自的配置参数

    安装好后如何查看mysql/apache/nginx/php安装参数   查看mysql编译参数: cat /usr/local/mysql/bin/mysqlbug | grep CONFIGURE ...

  3. HiHo Coder字典树 TrieTree

    题目地址:http://hihocoder.com/problemset/problem/1014 不得不吐槽一下这个OJ,题目质量是很好的,但是提交代码后返回的信息也太少了吧!!!本机测试无误,提交 ...

  4. php-fpm优化方法详解

    php-fpm优化方法 php-fpm存在两种方式,一种是直接开启指定数量的php-fpm进程,不再增加或者减少:另一种则是开始时开启一定数量的php-fpm进程,当请求量变大时,动态的增加php-f ...

  5. Java开源库

    Java SE 7 API Docs from Oracle Apache IO库操作IO与文件 2.4 XML4j 1.6.1 Json.org google-json 2.5 WindowBuil ...

  6. A()方法

      A方法用于在内部实例化控制器,调用格式:A('[项目://][分组/]模块','控制器层名称')最简单的用法: $User = A('User'); 复制代码 表示实例化当前项目的UserActi ...

  7. hdu 1281 二分图最大匹配

    对N个可以放棋子的点(X1,Y1),(x2,Y2)......(Xn,Yn);我们把它竖着排看看~(当然X1可以对多个点~) X1   Y1 X2   Y2 X3   Y3 ..... Xn   Yn ...

  8. Kali 使用ssh,安装vmware tools 和字体重叠

    Kali一直是我所爱,说说遇到的问题吧 第一个:字体重叠 gnome-tweak-tool --打开工具 第二个:ssh 修改sshd_config文件,命令为: vi /etc/ssh/sshd_c ...

  9. websocket业务代码

    需求 用户登陆后,服务器实时推送用户的订单提醒,用websocket处理. 方案 两个js,notify-socket.js处理socket的连接,和socket的处理. nofify.js,做右下角 ...

  10. css单位盘点

    css单位有:px,em,rem,vh,vw,vmin,vmax,ex,ch 等等 1.px单位最常见,也最直接,这里不做介绍. 2.em:em的值并不是固定,它继承父级元素的字体大小,所以层数越深字 ...