数组和容器(集合)相关的杂记

1. 数组是一种线性数据结构,用连续的存储空间存储相同类型数据
(1) 线性表:数组、链表、队列、栈 非线性表:树 图
(2) 连续的内存空间、相同的数据,所以数组可以随机访问,但对数组进行删除插入,为了保证数组的连续性,就要做大量的数据搬移工作

2. 容器和数组的对比: 相比于数字,java中的ArrayList封装了数组的很多操作,并支持动态扩容。一旦超过存储容量,扩容时比较耗内存,因为涉及到内存申请和数据搬移。

3.数组适用的场景: 

(1) Java ArrayList 的使用涉及装箱拆箱,有一定的性能损耗,如果特别关注性能,可以考虑数组
(2) 若数据大小事先已知,并且涉及的数据操作非常简单,可以使用数组
(3) 表示多维数组时,数组往往更加直观。
(4) 业务开发使用容器即可,底层开发,如网络框架,性能优化。选择数组。

原文地址:https://www.cnblogs.com/xiatuanjie/p/9787373.html

时间: 2024-10-02 00:11:50

数组和容器(集合)相关的杂记的相关文章

Java-杂项:Java数组Array和集合List、Set、Map

之前一直分不清楚java中的array,list.同时对set,map,list的用法彻底迷糊,直到看到了这篇文章,讲解的很清楚. 世间上本来没有集合,(只有数组参考C语言)但有人想要,所以有了集合 有人想有可以自动扩展的数组,所以有了List 有的人想有没有重复的数组,所以有了set 有人想有自动排序的组数,所以有了TreeSet,TreeList,Tree** 而几乎有有的集合都是基于数组来实现的. 因为集合是对数组做的封装,所以,数组永远比任何一个集合要快 但任何一个集合,比数组提供的功能

Java集合相关面试问题和答案

Java集合相关面试问题和答案 面试试题 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用,Java1.2提出了囊括所有集合接口.实现和算法的集合框架.在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久.它还包括在Java并发包中,阻塞接口以及它们的实现.集合框架的部分优点如下: (1)使用核心集合类降低开发成本,而非实现我们自己的集合类.

Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件

(1)下边的一个java类包含了所有Map.Set.List.数组.属性集合等这些容器,主要用于演示Spring的注入配置: package com.lc.collection; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; public class Department { private String name; private String []

从头认识java-14.1 再次对照数组与容器

这一章节我们再次深入的对照数组与容器. 数组与容器主要集中在三个方面:效率.类型.基础类型. 我们能够从三方面做出对照. 1.效率 这里的下来是指add和get 的速度 以下以add为例: package com.ray.ch13; import java.util.ArrayList; public class Test { public static void main(String[] args) { Integer zero = new Integer(0); ArrayList<Int

容器set相关算法

 set_union 算法set_union可构造S1.S2的并集.此集合内含S1或S2内的每一个元素.S1.S2及其并集都是以排序区间表示.返回值是一个迭代器,指向输出区间的尾端. 由于S1和S2内的每个元素都不需唯一,因此,如果某个值在S1出现n次,在S2出现m次,那么该值再输出区间中会出现max(m,n)次,其中n个来自S1,其余来自S2.在STL set容器内,m小于等于1,n小于等于1. template <class InputIterator1,classInputIterat

集合相关操作函数

# ### 集合相关操作 (交差并补) #intersection() 交集 set1 = {"周杰伦","王文","刘德华"} set2 = {"周润发","周星星","王文"} res = set1.intersection(set2) print(res) res = set1 & set2 print(res) #difference() 差集 set1= {"

Python 基础之集合相关操作与函数和字典相关函数

一:集合相关操作与相关函数 1.集合相关操作(交 差 并 补 )#intersection() 交集set1 = {"one","two","three"}set2 = {"four","five","one"}res = set1.intersection(set2)print(res)res = set1 & set2print(res) #difference() 差集se

工具类Arrays.asList()方法把数组转换成集合

工具类Arrays.asList()方法把数组转换成集合 不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出UnsupportedOperationException() 问题分析: 1.测试 被注释的三行可以分别解开注释,运行后确实出现了上述所说的异常 2.看源码 似乎没有问题.往下看 然而实际上我们点进到ArrayList发现,其实ArrayList并不是我们平时用的ArrayList.而是Arrays里面的一个内部类.而且这个内部类没有add,clear,remo

STL之vector,数组线性容器array,list容器,算法find,find_if,bind1st,仿函数

 1.STL(Standard Template Library,是用泛型技术来设计完成的实例)的概念与组成 Iterator(迭代器) Container(容器) Algorithm(算法) Adaptors(配接器) STL的六大组件分别是: 容器(Container) 算法(Algorithm) 迭代器(Iterator) 仿函数(Function object) 适配器(Adapter) 空间配置器(allocator):只能分配内存等 2.容器与算法 案例如下: #include<