集合框架

List接口下的集合特点: Set接口下的集合特点:

1.都是有序的 1.都是无序的 2.都有下标 2.没有下标

3.都可以重复 3.不可重复(覆盖)

List接口下的集合

1.ArrayList

  ArrayList  list = new ArrayList();//长度可加,但加了也是0
//集合的长度 size() 数组的长度 数组名.length 是一个属性 字符串长度 名.length() 是一种方法
//集合的长度在初始化的时候为0,当添加第一个数据的时候,会给一个默认的长度10,当添加的数据超过了10个,长度(10转换为2进制)会向右移动一位。长度也有一个最大值!
System.out.println(list.size()) //0
 //添加,可以添加重复的数据,也可以添加null,且会占用长度
list.add(111);
list.add(22.2);
list.add(true);
list.add("aaa");
list.add('v');
list.add(null);
//按指定位置添加:list.add(index,添加的数据) 注意:index不能超出原集合的最大长度
list.add(2,333)
//通过下标来获取集合中的每个值: list.get(下标)
   for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
//集合的删除
//针对非int类型
list.remove("aaa");
System.out.println("==================" + list.size());
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
//删除int类型的值,必须使用封装类
list.remove(new Integer(111));
System.out.println("=======================" + list.size());
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
//集合的修改
//list.set(下标,新的值)
list.set(0, 222);
System.out.println("====================" + list.size());
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
//查找集合中的某个值indexOf,lastIndexOf 返回指定数据第一次被查找到在集合中的下标
//如果没有找到返回-1
System.out.println(list.lastIndexOf("aaa"));
System.out.println(list.lastIndexOf(null));
//查找集合中是否有某个值,找到返回true,否则false
System.out.println(list.contains(null)); //判断集合是否为空
System.out.println(list.isEmpty());
System.out.println(list.size());
//清空集合中所有的元素
list.clear();
System.out.println(list.size());    

2.Vector

和ArrayList差不多,但已经不用了。

Vector 和ArrayList的区别:

1.ArrayList中的方法和实现和Vector基本一样,底层都是数组的实现。

2.Vector中的方法都是线程安全的,ArrayList没有考虑线程问题。

3.ArrayList在一些算法上做了优化,提高了效率。

3.Stack

和Vector差不多,也已经不用了。

4.LinkList

  LinkedList linkedList = new LinkedList();
linkedList.add("aaa");
linkedList.add("bbb");
linkedList.add("ccc"); linkedList.remove("ccc"); for (int i = 0; i < linkedList.size() ; i++) {
System.out.println(linkedList.get(i));
}
linkedList.addFirst("ffff");
linkedList.removeLast();

LinkList 和ArrayList的区别:

1.ArrayList底层是数组的实现,LinkedList底层是链表的实现 ​ 1.1 在java中链表就是自己实现了一个类,在类中记录了前一个和后一个的地址 ​ 每次查找都需要找到前一个或者后一个才能往前或者往后找到 2.ArrayList查找速度快,但是删除和插入的速度慢 3.LinkedList删除和插入的速度快,但是查询速度较慢 4.LinkedList有自己独有的addFirst addLast removeLast removeFirst的方法

链表:

在java中链表就是自己实现了一个类,在类中记录了前一个和后一个的地址

List接口下的集合的更多相关文章

  1. Map接口下的集合和泛型理解

    一.Map接口 1. Map接口就是最顶层了,上面没有继承了.Map是一个容器接口,它与前面学的List.Set容器不同的是前面学的这些容器,一次只能传入一个元素,但是Map容器一次可以传入一对元素( ...

  2. Set接口下的集合

    一.集合(定义字段的时候统一使用包装类) 1.集合大类分为List.Set.Map三种,其中,List集合是有序可重复的,并且可以使用普通for循环.增强for循环.正向迭代器.双向迭代器:Set集合 ...

  3. C# 通过IEnumberable接口和IEnumerator接口实现自定义集合类型foreach功能

    1.IEnumerator和IEnumerable的作用 其实IEnumerator和IEnumerable的作用很简单,就是让除数组和集合之外的类型也能支持foreach循环,至于foreach循环 ...

  4. .net 下的集合

    集合的操作在编码的时候很常见.但是由于经常使用几种集合.而忽略了一些不常用的集合.在这里我整理下. 首先先了解下接口: 1.IEnumerable,返回一个循环访问集合的枚举器. 2.IEnumera ...

  5. 容器之List接口下各实现类(Vector,ArrayList 和LinkedList)的线程安全问题

    Vector .ArrayList 和LinkedList都是List接口下的实现类,但是他们之间的区别和联系是什么呢? 首先: 然后: 如果您仅仅想知道结论,那么可以关闭了. 下面我讨论讨论为什么. ...

  6. IIC接口下的24C02 驱动分析

    本节来学习IIC接口下的24C02 驱动分析,本节学完后,再来学习Linux下如何使用IIC操作24C02 1.I2C通信介绍 它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据,是一个多 ...

  7. [知了堂学习笔记]_集合接口list与集合接口set的区别

    在Java中 除了 Map以外的集合的根接口都是Collection接口,而在Collection接口的子接口中,最重要的莫过于List和Set集合接口. 今天我们就来谈谈List集合接口与Set集合 ...

  8. C++下实现同接口下多个类作为参数的调用和传参

    /* 实现同接口下不同类的对象的转移 定义类的接口 定义多个继承该接口的类 定义管理类,把接口当作类型, 传入该接口下各种类的对象,进行操作 */ #include<iostream> # ...

  9. 集合接口list与集合接口set的区别

    在Java中 除了 Map以外的集合的根接口都是Collection接口,而在Collection接口的子接口中,最重要的莫过于List和Set集合接口. 今天我们就来谈谈List集合接口与Set集合 ...

随机推荐

  1. [知识图谱]Neo4j知识图谱构建(neo4j-python-pandas-py2neo-v3)

    neo4j-python-pandas-py2neo-v3 利用pandas将excel中数据抽取,以三元组形式加载到neo4j数据库中构建相关知识图谱 Neo4j知识图谱构建 1.运行环境: pyt ...

  2. [爬虫]用python的requests模块爬取糗事百科段子

    虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 “HTTP for Humans”,说明使用更 ...

  3. [考试反思]1101csp-s模拟测试97:人品

    上来粘6个图皮一下.(以后粘排行榜是不是都应该粘两份啊...文件出入的确挺难受的) 话说最近RP为什么会这么高啊???我干什么好事了???不知道. 这次考试的题挺有水准的,但是我的分数挺没水准的. T ...

  4. NOIP模拟 8

    T1 水题,可是没A,惭愧. 值得一提的是,虽然我忘了kmp,现场制造的kmp因为缺少针对题目的特判挂了,但是现场制造的kmp板子能过字符串板子题.. 对..把板子改装了...而且改对了! nx[]= ...

  5. 问题 A: 雷神领域

    传送门 题目描述 L君,S大陆首屈一指的天才魔法师,创造了一个新魔法:雷神领域.  这个魔法会首先在地面上形成正方网格魔法阵列,然后在某些位置召唤雷电轴标.注意:一个位置只能有一个雷电轴标存在. 雷电 ...

  6. Redis必备面试题《基础篇》

    Date:2019-11-12 读前思考: 面试官会问什么样的问题? 所问的问题背后真实的套路是什么? 喜欢问Redis哪些问题? 如何顺畅回答面试问的问题?吊打面试官. 1.什么是Redis? Re ...

  7. [Error]使用了未经检查或不安全的操作...

    编译错误注: MethodReflect.java使用了未经检查或不安全的操作.注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译. 解决:在类前面加入下面一句解决 @Suppr ...

  8. lqb 基础练习 查找整数 (遍历)

    基础练习 查找整数 时间限制:1.0s   内存限制:256.0MB     问题描述 给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个. 输入格式 第一行包含一个整数n. 第二行包含 ...

  9. centos安装后第一次重启,许可协议、Kdump

    1.许可协议,服务器键盘操作找到许可 确定(遇到过,第一次懵逼了) 2.Kdump是RHEL提供的一个崩溃转储功能,用于在系统发生故障时提供分析数据,它会占用系统内存,一般选择关闭(默认是关闭)(这个 ...

  10. 红帽学习笔记[RHCE]网络配置与路由转发

    目录 网络配置基本的IPV4与IPV6 拓扑图 操作 新加一块网卡 将增加的网卡分别加到两台虚拟机上 在两台虚拟机上配置IPV4与 IPV6 配置域名访问 拓展路由转发 拓扑图 操作 关于网关设置 重 ...