文章目录

1 collection接口

2  list接口

3 Iterator

4 Vertor

5  ArrayList

6 LinkedList


主体部分:

(1)collection

Java中有数字包装类(Inteager),字符包装类(String) . 其实也有对象的包装类----用来装对象的(通常是一类对象).这样做的好处是:使用方法和属性便于管理对象。

这种包装类叫做容器。 就想我们的水杯一样,结果都有一定的差异。同样容器由于数据结构的不同,也有很多类型。他们的父类是collection接口,里面有不少方法。

这些是容器共有的方法,比如:add(),remove();  collection又可以分为二大类。该文章介绍list

collection

|_list

|_set

容器的特点

(1)只能存储对象,不能是基本数据类型

(2)长度不是固定的---比数组灵活

(3)都有自己的数据结构

(2)List:

表面上看"列表", 它也是一个接口,他的子类都是List系类的容器(集合)

List 接口方法和collection差不多,多出来的就是list体系的特点:通过index来访问列表。比如:add(int index,Object o);remove(int index);//ect

list----|_Vector

|_ArrayList

|_LinkedList

|_其他

  (3)Iterator-----迭代器

        作用:用来访问集合中的对象,也是一个接口。里面只有3个方法,很重要。hasNext(),next(),remove();

注意这句话:每一个容器都有一个实现迭代器的内部类。而且控制通过iterator()获取实体对象。

ListIterator 是Iterator子接口,同样的道理,这里多出来的也就是通过index访问元素的方法。可以crud,效果很猛。

待会重点说明怎么使用。

  (4) Vector

        说了那么多接口,终于来个具体的容器。

Vector数据结构----数组类型----访问速度较慢(crud)---被ArrayList取代

淘汰了,不多说了。

看代码:

  public static void main(String[] args) {Vector  v=new Vector();//添加对象---String---二种方法都可以。v.add("abc1");v.addElement("abc2");v.add("abc3");//使用迭代器遍历。访问对象for( Iterator it=v.iterator(); it.hasNext();){System.out.println(it.next());}}

  

(5)ArrayList

            数据结构--数组

            特点:访问速度快,查询较慢,和Vector相似,所以取代Vector

             用法:

           

public static void main(String[] args) {List list=new ArrayList();list.add("abc1");list.add("abc2");list.add("abc3");Iterator it=list.iterator();while(it.hasNext()){Object obj=it.next();if(obj.equals("abc2"))list.add("abc0");//出现异常              }}

   上面出现异常,不能在迭代器遍历是为容器增加object。此时ListIterator作用出来,使用这个迭代器add(E e)就没有问题啦

public static void main(String[] args) {List list=new ArrayList();list.add("abc1");list.add("abc2");list.add("abc3");ListIterator it=list.listIterator();while(it.hasNext()){Object obj=it.next();if(obj.equals("abc2"))it.add("abc0");}System.out.println(list);  //[abc1, abc2, abc0, abc3]}

  说白了就是重写了List里面的方法+自己的一些方法。

  (6)LinkedList

数据结构---列表

方法丰富:

getFirst();

get(index);

getLast();

removeFirst();

set(int index, E element); //替换

code: 使用LinkedList模拟栈-----先进先出

package cn.com.List;import java.util.LinkedList;public class ListDemo {public static void main(String[] args) {//使用LinkedList 模仿栈和队列.//创建栈,myStack stack=new myStack();//进栈stack.add("abc1");stack.add("abc2");stack.add("abc3");//出栈while(stack.hasNext()){System.out.println(stack.get());}System.out.println("____________________________");//创建队列   和上面类似              }  //栈public static class myStack{private LinkedList list=null;public myStack(){list=new LinkedList();}public Boolean add(Object o){list.addFirst(o);return true;}public Object get(){return list.removeFirst();}public Boolean hasNext(){if(list.size()==0)return false;else return true;}}//队列public  static  class  Queue{private LinkedList list=null;public Queue(){list=new LinkedList();}public Boolean add(Object obj){list.addFirst(obj);return true;}public Object get(){return list.removeLast();}public Boolean hasNext(){if(list.size()==0)return false;else return true;}}}

  list系类介绍中三个主要的成员,下节说说set系类

注: 简单总结,更多函数看看 api

             

       

        

     

转载于:https://www.cnblogs.com/huang-1995/p/5886747.html

java合集框架第一天相关推荐

  1. Java类集框架详细汇总

    前言: Java的类集框架比较多,也十分重要,在这里给出图解,可以理解为相应的继承关系,也可以当作重要知识点回顾: Collection集合接口 继承自:Iterable public interfa ...

  2. 什么是java框架结构_什么是JAVA类集框架啊?具体指的是什么?是JAVA类的框架结构么?...

    参考答案如下 Word 2010 给选定的段落.类类 表单元格. 图文框添加的背景称为( ) . 近亲婚配时,集框架具体结构子女中隐性遗传病的发病率要比非近亲婚配者高得多这是由于他们来自共同的祖先,往 ...

  3. Java桌面游戏巡礼——国外Java游戏合集(第一回)

    1. Virus Effect 这是一个2D的Java横板射击游戏,作者在其中融入了很多FPS(First Personal Shooting Game)要素,角色能够进行换枪.调整射击角度.装弹拆弹 ...

  4. java合集系列之pring@Component @Repository@Service的区别

    问题 在spring集成的框架中,注解在类上的@Component,@Repository,@Service等注解能否被互换?或者说这些注解有什么区别? 回答1 引用spring的官方文档中的一段描述 ...

  5. Java类集框架基础-Collection

    集合类又被称作容器,常见集合:List集合,Set集合和Map集合,而List集合和Set集合继承Collection集合. Collection集合 是进行单对象保存的最大父接口,每次只能保存一个对 ...

  6. Java类集框架 —— HashMap源码分析

    HashMap是基于Map的键值对映射表,底层是通过数组.链表.红黑树(JDK1.8加入)来实现的. HashMap结构 HashMap中存储元素,是将key和value封装成了一个Node,先以一个 ...

  7. Java类集框架 —— LinkedList源码分析

    在JDK1.7之前,LinkedList是采用双向环形链表来实现的,在1.7及之后,Oracle将LinkedList做了优化,将环形链表改成了线性链表.本文对于LinkedList的源码分析基于JD ...

  8. Java类集框架--Stream数据流

    Java中为了简化集合的数据处理问题,提供了数据流接口:stream(),是一个重度使用lambda表达式的API..常用接口:count()元素个数,distinct()消除重复数据,collect ...

  9. 多多的魔术盒子(拼多多2020校招部分编程题合集之第一题)

    多多鸡有N个魔术盒子(编号1-N),其中编号为i的盒子里有i个球. 多多鸡让皮皮虾每次选择一个数字X(1 <= X <= N),多多鸡就会把球数量大于等于X个的盒子里的球减少X个. 通过观 ...

最新文章

  1. 程序员毕业两年,如何在帝都购房上车?
  2. Windows下,MySQL root用户忘记密码解决方案
  3. 能帮你找到网页设计灵感的16个网站
  4. ASP.NET面试题(推荐_有答案)
  5. CS61A 系列课程笔记(一)
  6. 大学课程表模板html,课程表模板空白表格(小/中/大学课程表模板excel) 中文免费版...
  7. Joplin实现样式更改
  8. python 点点滴滴
  9. hive LZO压缩
  10. 关于计算机的手抄报知识,电子手抄报
  11. java 定义一个方法,用于比较两个int数组的数字是否相同
  12. ubuntu ssh Host key verification failed,Host 10.xxx.xxx.xxx not found in /home/user/.ssh/known_hosts
  13. asp.net gridview ItemTemplate 获得 一行 数据
  14. linux 转换viso为pdf,foxpdf Visio转PDF转换器
  15. 监控摄像头上滤光片的作用是什么
  16. 零基础入门微信小程序系列之——校园跑腿
  17. HDU 3549 网络流水题
  18. Arena4D软件下载免费试用
  19. 局域网内抢网速_濮阳联通案例分享:某单位网速慢的处理分享
  20. 提取图像细节的两种方法

热门文章

  1. linux 以太网转wifi,LINUX-网络 - (以太网和WIFI无线)
  2. bootstrap-switch 不起作用 class处显示代码_GTJ2018高频问题解答——第六弹:梁加腋箍筋显示、梁钢筋报表查看等问题...
  3. arcgis怎么运行python_在arcgis上用python脚本(arcpy)做数据批处理
  4. 一个字稳,云原生产品家族支撑冬奥会九大业务场景,打造云上奥运新体验
  5. 从 “香农熵” 到 “告警降噪” ,如何提升告警精度?
  6. 使用 Arthas 排查 SpringBoot 诡异耗时的 Bug
  7. SpringCloud 应用在 Kubernetes 上的最佳实践 — 诊断(线上联调)
  8. java 连接linux失败,Jenkins连接Linux失败
  9. string java getbytes_从 String.getBytes 理解 Java 编码和解码
  10. 小米air耳机重新配对_小米发布 399 元真无线蓝牙耳机,除了小爱同学还支持其他手机语音助手...