A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© itheima_llt 高级黑马   /  2015-4-12 22:42  /  455 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 itheima_llt 于 2015-4-13 00:15 编辑

集合框架概述

正如数据被封装在对象里面,对象则封装在集合。
所以,集合就是对象的一种存储方式。

数组也可以存储对象,那么数组和集合的区别是什么呢?
数组的长度是固定的,而集合的长度是可变化的。
数组只可以存储基本数据类型,而集合只可以存取对象。

集合的特点:
1 集合只能存储对象
2 集合的长度是可变的
3 集合可以存储不同类型的对象

换言之,集合就是各种各样的容器,那么为什么会出现这么多的容器呢?
因为每一个容器的数据存储方式都千差万别。
而这个存储方式我们称之为:数据结构。

集合体系如下图所示。

下面谈谈集合常用的接口以及共性方法

Collection接口锁包含的共性方法有:
添加一个元素add(Object obj)
添加一个集合addAll(Collection)
清空集合clear()
移除一部分元素removeAll(Collection)
取交集retainAll(Collection)
转成数组toArray()
迭代取出iterator()


//创建集合
ArrayList al = new ArrayList();

//1 添加
al.add("java");//注意添加的是Object类型的

//2 获取集合长度,集合中包含的元素个数
al.size();

//打印集合
System.out.println(al);

举例:
Person p = new Person();
ArrayList al = new ArrayList();
al.add(p);

注意:
1 add方法添加的参数是Object
2 存储的都是地址值
如下图所示。

//删除元素
al.remove("number003");

//清空集合
al.clear();

//判断元素
包      含:boolean  flag = al.contains("number003");
是否为空集:boolean flag2 = al.isEmpty();

  1. import java.util.*;
  2. class Demo
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 //创建集合
  7.                 ArrayList al = new ArrayList();

  8.                 //添加元素
  9.                 al.add("number001");
  10.                 al.add("number002");
  11.                 al.add("number003");
  12.                 al.add("number004");

  13.                 System.out.println("集合的长度:"+al.size());

  14.                 //打印集合
  15.                 System.out.println(al);

  16.                 //删除元素
  17.                 //al.remove("number003");

  18.                 //打印集合
  19.                 //System.out.println(al);

  20.                 //清空集合
  21.                 //al.clear();

  22.                 //打印集合
  23.                 //System.out.println(al);

  24.                 //判断元素
  25.                 //boolean  flag = al.contains("number003");
  26.                 //System.out.println(flag);
  27.                 //boolean flag2 = al.isEmpty();
  28.                 //System.out.println(flag2);

  29.         }
  30. }
复制代码




更多图片 小图 大图
组图打开中,请稍候......

11 个回复

倒序浏览
赞一个~
回复 使用道具 举报
总结得不错
回复 使用道具 举报
感觉集合没有面向对象复杂地说
回复 使用道具 举报
恩恩 我也是这么觉得的
回复 使用道具 举报
l落落落叶 来自手机 中级黑马 2015-4-13 06:42:35
地板
楼主66666
回复 使用道具 举报
赞一个,
回复 使用道具 举报
黑马TYR 发表于 2015-4-13 00:37
感觉集合没有面向对象复杂地说

可能对于基础来说,面向对象需要掌握的程度高,集合需要的稍低点
回复 使用道具 举报
好从西啊.....
回复 使用道具 举报
好贴,顶{:3_53:}
回复 使用道具 举报
楼主辛苦
回复 使用道具 举报

既然选择了远方,便只顾风雨兼程
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马