一,数组:(定义、分配空间、赋值)
一维数组的声明: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,
相关推荐
在Java编程中,对象的容纳主要分为两种方式:数组和容器。这里我们将详细讨论这两种方式。 **一、数组** 数组是一种基础的存储结构,它允许我们存储相同类型的对象引用。在Java中,数组的创建和使用可以通过以下...
Java 基础教程:数组和集合 Java 中的数组和集合是两个非常重要的概念,它们用于存储和操作数据。在本文中,我们将详细介绍 Java 中的数组和集合,包括它们的定义、初始化、访问和常见操作。 数组(Array) 数组...
Java容器类库主要目的是为了存储对象,根据不同的数据结构,可以将其划分为两个主要的概念:**Collection** 和 **Map**。 - **Collection**:这是一个单一元素的序列。它进一步细分为以下几个子类: - **List**:...
Java容器详细解析 Java容器是一种基本的数据结构,用于存储和管理对象。Java容器主要分为两大类:Collection...Java容器主要分为Collection和Map两大类,每种容器都有其优点和缺点,需要根据实际情况选择合适的容器。
动态数组是指数组的容量能动态增长的数组,例如C++的STL提供了Vector,Java的Collection集合中提供了ArrayList和Vector。 单链表 单链表是一种链表的实现方式,由节点组成,每个节点都包含下一个节点的指针。...
在这个主题下,我们将深入探讨Java中的核心容器类,包括数组、List、Set和Map,以及它们各自的特点和使用场景。 1. **数组**:数组是最基本的容器形式,它允许存储相同类型的数据元素,并通过索引来访问。数组提供...
Java标准库提供了一系列丰富的集合类框架,包括`Collection`接口及其子接口如`Set`、`List`、`Map`和`Queue`等。这些集合类都位于`java.util`包下。 #### 二、集合类基础概念 集合类主要分为四种类型:`Set`、`...
在Java编程语言中,容器是用于存储对象的集合框架,它们提供了一种高效且灵活的方式来组织和管理数据。本练习题旨在帮助你深入理解和熟练掌握Java中的容器使用,特别是其核心类库`java.util`中的ArrayList、...
在Java编程中,容器(Containers)是存储和操作对象集合的重要工具,主要包括集合(Collections)和映射(Maps)。本文将深入解析Java容器的关键概念、特性以及不同容器类型的应用场景。 #### 一、Collection与Map...
在Java编程中,容器是用来存储和管理对象的类或接口,它们使得我们可以在程序中方便地组织和操作数据。在Java中,常见的容器主要分为三类:List、Set和Map,这些都是Java集合框架的重要组成部分。 首先,我们来看...
Java 容器是 Java 语言中的一种集合类库,主要包括 Collection 和 Map 两种类型。Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。 Collection Collection 是一种集合接口,提供了对集合...
这些知识点仅仅是Java容器对象的一部分,实际的博客可能会包含更多细节,如源码分析、性能对比和最佳实践。通过阅读博客中的`持有对象.xmind`文件,可以进一步了解博主对这些概念的详细整理和分类。如果你对Java容器...
1. Java 容器框架主要分为 Collection 和 Map 两种。其中,Collection 又分为A、List,B、Set,C、Queue,D、以上都是。答案:D。 2. 以下哪一个是线程安全的:A、Vector,B、HashMap,C、TreeMap,D、ArrayList。...
数组是最基本的容器,可以存储多个对象,但它有很多缺点,如长度必须在初始化时指定,数组采用连续存储空间,删除和添加效率低下,数组无法直接保存映射关系,数组缺乏封装,操作繁琐。因此,我们需要一种更强大、更...
本文将深入解析Java集合中的Collection、List、Set和Map,包括它们的使用方法、实现原理以及如何进行排序。 ### 集合框架概述 1.1.1 容器简介 容器是Java集合框架的基础,它是一个可以存储多个对象的容器,提供了...
在Java中,容器类主要分为两大类:Collection和Map。 Collection是所有单列集合的父接口,它定义了对集合的基本操作。Collection接口提供了如下的核心方法: - `boolean add(Object obj)`: 向集合中添加一个元素,...
Java对象容器是Java编程语言中用于存储和管理对象的关键组件,它们提供了灵活的方式来组织和操作数据,弥补了数组在某些场景下的不足。本篇文章将详细探讨Java中的对象容器,包括其核心特性、主要类型以及如何根据...
ArrayList和LinkedList是List接口的典型实现,ArrayList使用动态数组实现,适合随机访问,插入和删除效率相对较低;而LinkedList则通过链表实现,适合频繁的插入和删除,但随机访问效率低。 除了这些基本接口,集合...
数组是一种固定大小的、同类型数据的序列,而集合则是一个更为灵活的数据容器,提供了多种操作和功能。 首先,数组是一种基础的数据结构,它允许程序员存储一组相同类型的元素。数组的长度在声明时确定,并且不可...