集合——list简单总结

一.介绍list

1.什么是list?

list是一个有序的序列(collection),它是一个接口,继承了collection,因此了除了包含父类的方法以外,还有专属的方法。

list有三个子类,分别是:ArrayList、linkedlist、vector。

2.list与数组有什么区别呢?

从操作角度:

数组查询快,增删慢。

list增删快,查询慢。

从存储类型:

数组只能存储1种类型(基本类型或引用类型),而list可以存储多种类型(基本类型和引用类型)。

二.介绍栈和队列

栈的特点:先进后出,查询快,增删满

举例:弹夹

分析图:

栈操作数据时,通过地址值获取内存数据。

队列特点:先进先出,增删快,查询慢

举例:排队

分析图:

三.数组与链表存储方式

数组的存储

查询33这个元素,直接数组名[索引],即:array[1]就能得到33这个元素

删除33

1.33前的元素,不变

2.33这个元素,不存储

3.33后的把以前的位置-1,存到新数组中。麻烦

链表:由一个链子将多个节点连起组成的数据。

节点包括:数据和地址组成(指针域和数据域)

内存图:

四.List三个子类的区别和应用场景

Vector:底层是数组,查询快,增删慢

Arraylist:底层是数组,查询块,增删慢

LinkedList:底层是链表,查询慢,增删快

效率:

Vector:线程同步(安全),效率低

ArrayList:线程不同步(不安全),效率高

它用来代替Vector的。

LinkedList:线程不安全,效率高

时间: 2024-10-13 22:22:29

集合——list简单总结的相关文章

Laravel集合的简单理解

本篇文章给大家带来的内容是关于Laravel集合的简单理解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 前言 集合通过 Illuminate\Database\Eloquent\Collection 进行实例,Laravel的内核大部分的参数传递都用到了集合,但这并不代表集合就是好的.Laravel作为快捷并优雅的开发框架,是有他一定的道理所在的,并非因他的路由.DB.监听器等等.当你需要处理一组数组时,你可能就需要它帮助你快捷的解决实际问题. 创建集合 1 $collect

java中使用redis --- Set集合的简单应用

1.java代码 public class RedisTest01 { public static void main(String[] args){ // connect redis server Jedis redis = new Jedis("127.0.0.1",6379); // 首先清除redis中的原有的键 redis.del("name"); redis.del("age"); // 向Set集合存放元素 redis.sadd(&

集合的简单总结

数组:Array 01.在内存中开辟一连串的空间 02..java有严格的数据类型限制,一个数组只能声明一个数据类型,存放同一种数据类型. 03.便于我们查询 因为有下标(索引) 04.增删的效率低,因为元素之后的数据都要改变 05.一旦数组初始化完成,数组的所占的内存空间将被固定,长度不可变,即使清空数组元素,内存空间依然存在,长度不变. Arrays 数组的工具类 常用的方法 1.equals 比较两个数组是否相同 2.sort 排序 字母也可(字母排序似乎是按首字母来排序,然后再比较第二个

java集合-List简单介绍

List为一个接口,直接继承Collection接口,对比他们的接口变化:除了Collection接口中size(),isEmpty()等方法,其增加了基于下标index的一系列方法,摘抄部分接口方法: get(int) set(int, E) add(int, E) remove(int) indexOf(Object) lastIndexOf(Object) subList(int, int) 我们简单看一下ArrayList, 首先看一下成员变量 private static final

Object-c集合的简单介绍

一.简单介绍 NSArray/NSMutableArray NSSet/NSMutableSet NSDictionary/NSMutableDictionary NSArray.NSSet.NSDictionary是不可变的,创建的时候初始化 NSMutableArray.NSMutableSet.NSMutableDictionary是可变的 二.使用介绍 NSArray是有序的数组 NSMutableArray *myArray=[[NSMutableArray alloc] init];

C#中的泛型和集合的简单使用

1,泛型List<T> 泛型List<T>,其中T为自定义的数据类型 List<int> list=new List<int>(); list.Add(121); Add()方法用来添加相应类型的元素. 练习1: //把这两个集合去除重复项合并成一个. List<int> listOne = new List<int>() { 1, 2, 3, 4, 5, 6 }; List<int> listTwo = new List

java集合的简单使用

/* list接口      ArrayList 采用异步处理方式,性能高,但属于非线程安全      Vector    采用同步处理方式,性能低,但属于线程安全      当程序考虑线程安全的时候选Vector,其他选择ArrayList,速度快,性能高 set接口不能加入重复元素,(记忆:s开头same反而不同),但是可以排序   set接口的常用子类        散列存放:HashSet(哈希的话没有排序)        有序存放:TreeSet(有序的) Iterator接口  集合

元组、列表、字典、集合的简单梳理

元组 用小括号定义,如: tuple_demo = ('test',18,'test adress') 值得注意的是 元组不支持新增\修改和删除 python中针对元组仅提供了两个方法   index()   count() 那么如果传入的参数不存在会如何呢?   index方法会抛出ValueError  而count方法会返回0, 演示如下: 元组的取值 如果针对元组中的值进行修改会如何呢?    答案是会抛出 TypeError 演示如下: 列表 使用中括号定义,  如   list_de

Python集合的简单操作。

# -*- coding: utf8 -*- set1 = set('abcd') set2 = set('cdef') print(set1 - set2) # 差集 set1相对与set2 多什么 print(set2 - set1) print(set1 | set2) # 并集,两个集合合并,相同的去重提取出一个集合 print(set1 & set2) # 交集,两个集合相同的元素提取出一个集合 print(set1 ^ set2) # 异或,两个集合中元素是单一的提取出一个集合 {'