当前位置: 首页 > news >正文

Java集合(本篇主要介绍List接口)

 

*集合:集合和数组一样,都是容器,都可以存放程序运行过程中的数据。但是,集合的长度是可变的,集合可以存放基本数据类型,也可以存放引用数据类型。而且集合的存储方式多种多样(数据结构)。

 

Collection:是集合类的顶级接口,继承自它的接口主要有LIist接口和Set接口,而Map接口可以产生集合。

Collections:是帮助类,提供了常用的方法。

 

常用API:java.util*  List  Collection  Map   Set

List有序集合,可以通过下标访问集合中的元素。

允许重复值,允许有多个null值

在搜索指定对象时,开销较大,但在删除添加对象时较为高效。

 

List的常用操作

add(E e):将指定元素添加到列表的尾部

add(Index ,e):将指定元素添加到指定位置

clear()移除此列表中的所有元素

ensureCapacity (int minCapacity):增加容器的容量

isEmpty():判断集合是否为空

remove(index) 移除此列表中指定位置上的元素。

get(index):返回此列表中的所有元素

remove(Object o)移除此列表中首次出现的元素

set(index,e)用指定元素代替指定位置上的元素

toArray():按适当顺序返回包含此列表所有元素的数组

 containsAll(Collection<?> c) 如果collection包含指定collection中的所有元素,则返回 true

retainAll(Collection<?> c) 仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)保留交集

ArrayList:具有List集合的基本特性,是一个大小可变的数组。

底层实现是数组结构,可以通过下标来访问。

有序集合(存入与取出的顺序相同)

允许重复值,允许有多个null值

每个ArrayList实例在初始化时,都有一个初始容量,大小为10.

若要添加大量的数据时,最好先调用ensureCaptity()来改变容器的初始容量。

            查询速度快  get  set

            线程不同步,线程不安全,但是高效

package com.itycl.array;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

 

public class ArrayListDemo {

public static void main(String[] args) {

   List<String> list=new ArrayList<>();

   list.add("a");

   list.add("b");

   list.add("c");

   list.add("d");

   list.add("e");

  

   Iterator it=list.iterator();

   while(it.hasNext()) {

      String str = (String) it.next();

      System.out.println(str);

   } 

}

}

 

 

LinedList:具有List集合的基本特性

        底层实现是链表结构,同时支持堆,栈,队列

LinkedList具有好几套方法可供使用

允许重复值,允许null值

增删操作快add  remove

        线程不同步,线程不安全,但是高效

 

public class LinkedListDemo {

public static void main(String[] args) {

   

    LinkedList<Integer> list=new LinkedList<>();

    list.add(1);

    list.add(2);

    list.add(3);

    list.add(4);

    list.addFirst(0);

    ListIterator it=list.listIterator();

    while(it.hasNext()) {

       Integer value = (Integer) it.next();

        if(4==value) {

            it.add(5);

        }

    }

    System.out.println(list);//0,1,2,3,4,5

   

   

    list.removeLast();

    System.out.println(list);//0,1,2,3,4

   

    list.push(1);//在列表的首部添加元素

    System.out.println(list);//1,0,1,2,3,4

   

    list.pop();//在列表的首部开始删除一个元素

    System.out.println(list);//0,1,2,3,4

   

    list.peekFirst();// 获取但不移除此列表的第一个元素

    System.out.println(list);//0,1,2,3,4

   

    list.peekLast();// 获取但不移除此列表的最后一个元素

    System.out.println(list);//0,1,2,3,4

   

    list.pollFirst();// 获取并且移除此列表的第一个元素

    System.out.println(list);//1,2,3,4

   

    list.pollLast();// 获取并且移除此列表的最后一个元素

    System.out.println(list);//1,2,3

      

}

}

 

 

 

Vector同步,可变数组。

        实现了RandmoAccess接口,即提供了随机访问功能

线程安全,效率低。

 

转载于:https://www.cnblogs.com/MiLanDaEr/p/10055339.html

相关文章:

  • Shade4PointLights
  • 【笔记】Python集成开发环境——PyCharm 2018.3下载、注册、帮助文档
  • cocos2d lua 之骨骼动画
  • 第二阶段第三天
  • 在Linux 中进入单用户模式的技巧
  • Python3+Selenium3+webdriver学习笔记5(模拟常用键盘和鼠标事件)
  • 彻底解析XML
  • JAVA和C语言的区别
  • LeetCode:155. 最小栈
  • 普通项目经理和资深项目经理的这6大差距,你造吗?
  • unity资源释放(AssetBundle和Asset)
  • python-selenium安装笔记
  • unity的AssetBundle打包目录结构以及bundle之间的依赖
  • NavMeshAgent寻路,动态加载NavMesh
  • ORM之查循
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • docker-consul
  • Java多态
  • Meteor的表单提交:Form
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • mysql 数据库四种事务隔离级别
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • node-glob通配符
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Swoft 源码剖析 - 代码自动更新机制
  • vue的全局变量和全局拦截请求器
  • 类orAPI - 收藏集 - 掘金
  • 容器服务kubernetes弹性伸缩高级用法
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​io --- 处理流的核心工具​
  • #HarmonyOS:Web组件的使用
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (全注解开发)学习Spring-MVC的第三天
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (译) 函数式 JS #1:简介
  • .NET CORE Aws S3 使用
  • .NET Core 和 .NET Framework 中的 MEF2
  • .net 受管制代码
  • @Bean, @Component, @Configuration简析
  • @ModelAttribute使用详解
  • @TableLogic注解说明,以及对增删改查的影响
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [android] 请求码和结果码的作用