01.为什么要使用集合框架?

解析:如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象,那么可以使用Java集合框架。

如果启用集合的删除方法,那么集合中所有元素的索引会自动维护。

集合完全弥补了数组的缺陷。

02.集合框架的内容

集合框架都包含三大块内容:对外的接口,接口的实现和对集合运算的算法

01.接口:表示集合的抽象数据类型

02.实现:集合框架中接口的具体实现

03.算法:在一个实现了某个集合框架的接口的对象身上完成某种有用的计算方法

java集合框架简图:

01.Collection接口存在储存一组不唯一(允许重复),无序的对象

02.Set接口继承Collection接口,存储一组唯一(不允许重复),无序的对象

03.List接口继承Collection接口,存储一组不唯一(允许重复),有序(以元素插入的次序来放置元素,不会重新排列)的对象

04.Map接口存储一组成对的键-值对象,提供key(键)到value(值)的映射。Map中的key不要求有序,不允许重复。value同样不要求有序,但允许重复。

05.Iterator接口是负责定义访问和遍历元素的接口。

下面开始介绍:

1.List接口

List接口继承Collection接口,存储一组不唯一(允许重复),有序(以元素插入的次序来放置元素,不会重新排列)的对象

实现List接口的常用类有ArrayList和LinkedList

ArrayList对数组进行了封装,实现了长度可变的数组

LinkedList采用链表存储方式,其优点在于插入,删除元素时效率比较高

01.ArrayList集合类

  1. package cn.day001;
  2.  
  3. public class Penguin {
  4. private String name="无名氏";
  5. private String sex="Q仔";
  6.  
  7. public Penguin() {
  8.  
  9. }
  10. public Penguin(String name, String sex) {
  11. this.name = name;
  12. this.sex = sex;
  13. }
  14. public String getName() {
  15. return name;
  16. }
  17. public void setName(String name) {
  18. this.name = name;
  19. }
  20. public String getSex() {
  21. return sex;
  22. }
  23. public void setSex(String sex) {
  24. this.sex = sex;
  25. }
  26.  
  27. }

测试类:

  1. package cn.day001;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Iterator;
  5. import java.util.List;
  6.  
  7. //上机1 ArrayList集合类
  8. public class Test {
  9.  
  10. public static void main(String[] args) {
  11. //1.创建多个企鹅对象
  12. Penguin penguin=new Penguin("楠楠","Q仔");
  13.  
  14. Penguin penguin2=new Penguin("花花","Q妹");
  15.  
  16. Penguin penguin3=new Penguin("哲哲","Q妹");
  17.  
  18. //2.创建Arraylist集合对象并把2个企鹅对象放到其中
  19. List<Penguin> penguins=new ArrayList<Penguin>();
  20.  
  21. penguins.add(penguin);
  22. penguins.add(penguin2);
  23. penguins.add(penguin3);
  24. //3.输出集合中企鹅的数量
  25. System.out.println("共计有"+penguins.size()+"只企鹅");
  26.  
  27. //4.通过遍历集合显示
  28. for (int i = 0; i < penguins.size(); i++) {
  29. Penguin pg=(Penguin)penguins.get(i);
  30. System.out.println(pg.getName()+"\t"+pg.getSex());
  31. }
  32. //5.删除集合中哲哲企鹅
  33. penguins.remove(penguin3);
  34.  
  35. //6.判断集合中是否还存在哲哲企鹅
  36. if (penguins.contains(penguin3)) {
  37. System.out.println("存在哲哲企鹅");
  38. }else {
  39. System.out.println("不存在哲哲企鹅");
  40. }
  41. System.out.println();
  42. //7.使用iterator迭代遍历
  43. System.out.println("使用iterator遍历");
  44. Iterator<Penguin> its=penguins.iterator();
  45. while (its.hasNext()) {
  46. Penguin pg =its.next();
  47. System.out.println("名字"+pg.getName()+"\t性别"+pg.getSex());
  48.  
  49. }
  50. System.out.println();
  51. //8.使用foreach遍历
  52. System.out.println("使用foreach遍历");
  53. for (Penguin pg : penguins) {
  54. System.out.println("名字"+pg.getName()+"\t性别"+pg.getSex());
  55. }
  56.  
  57. }
  58.  
  59. }

02.LinkedList集合类

  1. package cn.day001;
  2.  
  3. import java.util.LinkedList;
  4.  
  5. //测试LinkedList的多个特殊方法
  6. public class Test2 {
  7.  
  8. public static void main(String[] args) {
  9. //1.创建多个企鹅对象
  10. Penguin penguin=new Penguin("楠楠","Q仔");
  11.  
  12. Penguin penguin2=new Penguin("花花","Q妹");
  13.  
  14. Penguin penguin3=new Penguin("哲哲","Q妹");
  15.  
  16. //2.创建Arraylist集合对象并把2个企鹅对象放到其中
  17. //List<Penguin> penguins=new ArrayList<Penguin>();
  18. LinkedList<Penguin> penguins=new LinkedList<Penguin>();
  19.  
  20. penguins.add(penguin);
  21. penguins.add(penguin2);
  22. penguins.add(penguin3);
  23. //3.输出集合中企鹅的数量
  24. System.out.println("共计有"+penguins.size()+"只企鹅");
  25.  
  26. //4.查看集合中第一只企鹅的昵称
  27. Penguin firstpenguins=penguins.getFirst();
  28. System.out.println("第一只企鹅的昵称是:"+firstpenguins.getName());
  29.  
  30. //5.查看集合中最后一只企鹅的昵称
  31. Penguin lastpenguins=penguins.getLast();
  32. System.out.println("最后一只企鹅的昵称是:"+lastpenguins.getName());
  33.  
  34. //6.删除第一只企鹅和最后一只企鹅
  35. penguins.removeFirst();
  36. penguins.removeLast();
  37.  
  38. System.out.println("删除后企鹅数"+penguins.size());
  39.  
  40. }
  41.  
  42. }

2.Map接口

01.HashMap集合类

  1. package cn.day002;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Iterator;
  5. import java.util.Map;
  6. import java.util.Scanner;
  7. import java.util.Set;
  8.  
  9. //上机2 根据宠物昵称查找宠物 上机3 使用iterator迭代遍历
  10. public class Test {
  11.  
  12. public static void main(String[] args) {
  13. Map<String, String> pet=new HashMap<String, String>();
  14.  
  15. pet.put("嘻嘻", "狗狗");
  16. pet.put("哈哈", "企鹅");
  17. pet.put("呵呵", "猫猫");
  18.  
  19. Scanner input=new Scanner(System.in);
  20.  
  21. System.out.println("请输入宠物昵称:");
  22. String name=input.next();
  23. if (pet.containsKey(name)) {
  24. String petname=pet.get(name);
  25. System.out.println(name+"对应的宠物"+petname);
  26. }else {
  27. System.out.println("对不起,没有此昵称对应的宠物");
  28. }
  29.  
  30. System.out.println();
  31. //使用iterator迭代遍历
  32. System.out.println("使用iterator遍历");
  33. Set<String> keys=pet.keySet();//取出所有的key的值
  34. Iterator<String> it=keys.iterator();//获取Iteratoer对象
  35. while (it.hasNext()) {
  36. String key = (String) it.next();//取出key值
  37. String pets=pet.get(key);//根据key取出对应的值
  38. System.out.println("key值:"+key+"\tvalue值:"+pets);
  39. }
  40.  
  41. }
  42.  
  43. }

Java的集合框架的更多相关文章

  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 之 集合框架(JCF)

    1.集合框架 a.框架:为了实现某一目的或功能,而预先提供的一系列封装好的.具有继承或实现关系的类与集合 b.集合:①定义:Java中对一些数据结构和算法进行封装,即封装(集合也是一种对象) ②特点: ...

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

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

随机推荐

  1. android自定义viewgroup之我也玩瀑布流

    先看效果图吧, 继上一篇<android自定义viewgroup实现等分格子布局>中实现的布局效果,这里稍微有些区别,每个格子的高度不规则,就是传说的瀑布流布局,一般实现这种效果,要么用第 ...

  2. JAVA 汇编语言查看

    http://blog.csdn.net/bingduanlbd/article/details/8524300 http://hllvm.group.iteye.com/group/topic/34 ...

  3. windows内核结构

  4. -webkit-min-device-pixel-ratio的常见值对照

    -webkit-min-device-pixel-ratio为1.0 所有非Retina的Mac 所有非Retina的iOS设备 Acer Iconia A500 Samsung Galaxy Tab ...

  5. ODAC(V9.5.15) 学习笔记(十七)主从模式

    主从模式(Master/Detail mode)是指建立主表和从表关系的多个数据集集合模式. 1. 关系设置 要设置主从模式,必须有一个主表数据集(TDataSet)和一个从表数据集(TDataSet ...

  6. location.hash属性介绍

    location.hash属性介绍 例如URL: http://wwww.a.com/index#rhythmk 通过location.hash 我们将获取到 #rhythmk. 默认浏览器会滚动至i ...

  7. HIVE: SerDe应用实例

    数据文件内容 id=123,name=steven id=55,name=ray 期望输出格式 123 steven 55 ray 1. 创建表, 用正则表达式的形式指定格式 create table ...

  8. java攻城狮之路(Android篇)--Activity生命

    一:Activity的激活 1.写一个类 extends Activity Activity是android的四大组件之一.Activity的激活分为显式意图激活和隐式意图激活.如果一个activit ...

  9. 浅析.NET泛型

    泛型是.NET Framework 2.0最强大的功能,通过泛型可以定义类型安全的数据结构,而没有必要使用实际的数据类型,这将显著提高性能并得到更高质量的代码.在.NET Framework 2.0之 ...

  10. [git]安装git-pylint-commit-hook提高python项目中的代码质量

    什么是'git-pylint-commit-hook' 我在工作中,团队为了保证代码和提高代码的质量,要求每个项目都要求安装git-pylint-commit-hook,它是个钩子,会在你提交代码到本 ...