`

java数组和容器(Collection)

    博客分类:
  • j2se
阅读更多

一,数组:(定义、分配空间、赋值)

一维数组的声明:type []  var 或者 type  var [];

java中试用new 创建数组对象格式为:数组名 = new 数组元素类型[数组元素个数];

注意理解基本数据类型数组和引用类型一维数组的内存分配差异。

数组的定义与初始化

 

1,数组动态初始化(数组的定义也就是数组的空间分配和数组元素的赋值分开进行):数组的定义与数组元素分配空间和赋值操作分开进行。

eg1: int a[];

      a = new int[3];

      a [0] = 1;    a [1] = 2;   a [2] = 3;

eg2  Date d [];

        d = new Date[2];

        d[0] = new Date(5,12,2008);      d[1] = new Date(3,22,2011);

 

2,数组静态初始化:定义数组的同时就为数组元素分配空间并赋值。

eg1:int a[] =  {1,2,3};   /    int[] a = {1,2,3};

eg2:  Date d[] = {new Date(8,8,2008),new Date(5,12,2008),new Date(3,22,2011),new Date(15,8,2011)};

 

数组元素默认的初始化: int 类型的默认值是0,  float 和double类型默认的是0.0;  String或者自定义对象是null。 eg:  int[] i = new int[5];  System.out.println(i[2]);

数组的下标:从0开始到n-1。

每个数组都有一个length属性指明其长度  eg: a.length的值为数组a的长度(元素个数)

 

二维数组:二维数组可以看成是数组的数组,也就是以数组为元素的数组。

eg:int a[][] = {{1,2},{3,4,5},{6,7,8,9}};

多维度数组的初始化应该按照从高维到低维的顺序进行(通俗的讲就是从左到右)。从内存分配方面来理解。

eg:int a[][] = new int[3][];

       a[0] = new int[2];

       a[1] = new int[3];

       a[2] = new int[3];

下面的做法是非法的:int a[][] = new int[][5];

数组拷贝  System.arraycopy(src, srcPos, dest, destPos, length);

 

二,集合

    1,Collection接口:层次结构中的根元素
        
    2,List接口:有序,可以重复
      2.1,ArrayList    数组的形式存储    连续的内存存储    查找 快   插入删除慢     删除中间的元素的时候会把删除元素的后面的元素往前移动。线程不安全,效率高 
      2.2,LinkedList   链表的形式存储    非连续的内存存储     查找 慢     插入/删除 快    链式存储  无法根据偏移量计算出下一个元素的位置  需要遍历才能找到.  线程不安全,效率高 

       2.3Vector 数组的形式存储    连续的内存存储。 线程安全,效率低下。 
    3,Set接口:无序,不可以重复
       
    4,Map接口:里面存放的是键值对的方法
       4.1:HashMap  线程不安全的,效率高

       4.2:HashTable  线程安全的,效率低


    5,

 

    6,

 

    7,

 

Java数组、ArrayList、LinkedList和Vector性能比较



 

 使用容器或者数组的 要考虑的几点:
    a,内存分配
    b,插入   查找   删除 的效率
    c,线程安全
    d, 

 

 

 

 

  • 大小: 22.5 KB
分享到:
评论

相关推荐

    Java容器有两种基本类型Collection 和 Map

    Java 容器的两种基本类型:Collection 和 Map Collection 和 Map 是 Java 中的两种基本容器类型,它们都可以用来存储和管理对象,但它们有着不同的特点和用途。 Collection 是一种聚集对象的容器,每个位置只能...

    Java 容器.pdf_电子版pdf版

    Java 容器是 Java 语言中的一种集合类库,主要包括 Collection 和 Map 两种类型。Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。 Collection Collection 是一种集合接口,提供了对集合...

    Java集合Collection、List、Set、Map使用详解.doc

    Java 集合框架中的容器可以分为两大类:Collection 和 Map。Collection 是一个接口,定义了容器的基本操作,而 Map 则是键值对的容器。 1.2 Collection Collection 是 Java 集合框架中的一个接口,定义了容器的...

    Java容器.xmind

    Collection 标记: 顶级接口 List 标记: interface ArrayList 标记: class CRUD : boolean add​(E e) boolean remove​(Object o) E set​(int index, E element) E get​(int index) 底层数组实现,查询快,...

    java集合详解.pdf

    容器是指存储数据的对象,Java 中的容器可以分为两类:Collection 和 Map。Collection 是一种用于存储对象的容器,而 Map 是一种用于存储键值对的容器。 1.1.2 容器的分类 Java 中的容器可以分为以下几类: * ...

    Java并发编程:同步容器

    为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具...  注意Collection和Map是一个顶层接口,而List、Set、Queue则继承了Collection接口,分别代表数组、集合和队列这三大类容器。  像ArrayLis

    Java Collection集合的简单介绍与运用

    集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.Map,这里主要记录一下Collection集合。 Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个...

    Java基础知识点总结.docx

    Java数组与集合小结 305 递归 309 对象的序列化 310 Java两种线程类:Thread和Runnable 315 Java锁小结 321 java.util.concurrent.locks包下常用的类 326 NIO(New IO) 327 volatile详解 337 Java 8新特性 347 Java...

    JAVA基础课程讲义

    综合应用组件和容器和布局管理器 221 AWT事件处理模型 223 问题 223 事件处理模型是什么? 223 最简单的事件处理程序 224 AWT中事件处理代码编写 225 编写过程 225 处理过程 225 简化理解上面过程 225 事件和事件源...

    Java 最常见的 208 道面试题:第二模块答案

    18. java 容器都有哪些? 19. Collection 和 Collections 有什么区别? 20. List、 Set、 Map 之间的区别是什么? 21. HashMap 和 Hashtable 有什么区别? 22. 如何决定使用 HashMap 还是 TreeMap? 23. 说一下 ...

    疯狂JAVA讲义

    7.2 Collection和Iterator接口 243 7.2.1 使用Iterator接口遍历集合元素 244 7.2.2 使用foreach循环遍历集合元素 246 7.3 Set接口 247 7.3.1 HashSet类 247 学生提问:hashCode方法对于HashSet的作用是什么? ...

    Java—一篇读懂java集合(Collection/Map)及Lambda表达式

    集合简介 ...  Java集合类的基本接口是Collection接口和Map接口。该接口有两个基本方法:add()和iterator()方法。 public interface Collection { boolean add(E element); Iterator iterator()

    Java容器详解

    1.什么是容器在Java当中,有一个类专门用来存放其它类的对象,这个类就叫做容器,它就是将若干性质相同或相近的类对象组合在一起而形成的一个整体。2.常用的Java1.List有序的collection(也称为序列)。此接口的用户...

    Java程序设计API类库实训.pdf

    * Collection 接口:Java.util.Collection 接口是一个容器接口,提供了基本的容器操作,如 add、remove、size 等。 * List 接口:Java.util.List 接口是一个有序容器接口,提供了有序容器操作,如 get、set、indexOf...

    java初学者必看

    15.2.1 容器(Collection) 15.2.2 迭代器(Iterator) 15.3 链表List 15.3.1 链表List接口方法 15.3.2 链表迭代器接口 15.3.3 链表和数组链表 15.3.4 链表应用 15.3.5 数组链表应用 15.4 集Set 15.4.1 排序集...

    Java 基础核心总结 +经典算法大全.rar

    节点流和处理流 Java IO 的核心类 File Java IO 流对象 字节流对象InputStream OutputStream 字符流对象Reader Writer 字节流与字符流的转换新潮的 NIO 缓冲区(Buffer)通道(Channel) 示例:文件拷贝案例 BIO 和 NIO ...

    Java开发详解.zip

    031301_【第13章:Java类集】_认识类集、Collection接口笔记.pdf 031302_【第13章:Java类集】_List接口笔记.pdf 031303_【第13章:Java类集】_LinkedList类笔记.pdf 031304_【第13章:Java类集】_Set接口笔记.pdf ...

    java基础案例与开发详解案例源码全

    14.1.1 AWT组件和容器354 14.1.2 布局管理器359 14.2 事件处理机制365 14.2.1 事件监听器366 14.2.2 事件适配器(EventAdapter)370 14.3 AWT常用组件372 14.3.1 界面组件372 14.3.2 菜单组件377 14.3.3 其他组件382 ...

    Java常见面试题208道.docx

    面试题包括以下十九部分:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql...

Global site tag (gtag.js) - Google Analytics