List接口下的集合
集合框架
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接口下的集合的更多相关文章
- Map接口下的集合和泛型理解
一.Map接口 1. Map接口就是最顶层了,上面没有继承了.Map是一个容器接口,它与前面学的List.Set容器不同的是前面学的这些容器,一次只能传入一个元素,但是Map容器一次可以传入一对元素( ...
- Set接口下的集合
一.集合(定义字段的时候统一使用包装类) 1.集合大类分为List.Set.Map三种,其中,List集合是有序可重复的,并且可以使用普通for循环.增强for循环.正向迭代器.双向迭代器:Set集合 ...
- C# 通过IEnumberable接口和IEnumerator接口实现自定义集合类型foreach功能
1.IEnumerator和IEnumerable的作用 其实IEnumerator和IEnumerable的作用很简单,就是让除数组和集合之外的类型也能支持foreach循环,至于foreach循环 ...
- .net 下的集合
集合的操作在编码的时候很常见.但是由于经常使用几种集合.而忽略了一些不常用的集合.在这里我整理下. 首先先了解下接口: 1.IEnumerable,返回一个循环访问集合的枚举器. 2.IEnumera ...
- 容器之List接口下各实现类(Vector,ArrayList 和LinkedList)的线程安全问题
Vector .ArrayList 和LinkedList都是List接口下的实现类,但是他们之间的区别和联系是什么呢? 首先: 然后: 如果您仅仅想知道结论,那么可以关闭了. 下面我讨论讨论为什么. ...
- IIC接口下的24C02 驱动分析
本节来学习IIC接口下的24C02 驱动分析,本节学完后,再来学习Linux下如何使用IIC操作24C02 1.I2C通信介绍 它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据,是一个多 ...
- [知了堂学习笔记]_集合接口list与集合接口set的区别
在Java中 除了 Map以外的集合的根接口都是Collection接口,而在Collection接口的子接口中,最重要的莫过于List和Set集合接口. 今天我们就来谈谈List集合接口与Set集合 ...
- C++下实现同接口下多个类作为参数的调用和传参
/* 实现同接口下不同类的对象的转移 定义类的接口 定义多个继承该接口的类 定义管理类,把接口当作类型, 传入该接口下各种类的对象,进行操作 */ #include<iostream> # ...
- 集合接口list与集合接口set的区别
在Java中 除了 Map以外的集合的根接口都是Collection接口,而在Collection接口的子接口中,最重要的莫过于List和Set集合接口. 今天我们就来谈谈List集合接口与Set集合 ...
随机推荐
- 7.25 NOIP模拟8
这次考试前面状态还行,后两个小时真是一言难尽,打了个T3的n^2暴力就懵逼了,不知道怎么优化. T1.匹配 看了一边题发现不太懂(这不是考试的难度啊),然后水完T2后回来5分钟水过,非常愉快的一道题. ...
- Hbase与Oracle的比较
http://blog.csdn.net/lucky_greenegg/article/details/47070565 转自:http://www.cnblogs.com/chay1227/arch ...
- 分类算法之逻辑回归(Logistic Regression
分类算法之逻辑回归(Logistic Regression) 1.二分类问题 现在有一家医院,想要对病人的病情进行分析,其中有一项就是关于良性\恶性肿瘤的判断,现在有一批数据集是关于肿瘤大小的,任务就 ...
- mvn上传dubbo jar到nexus
第一种方式: mvn deploy:deploy-file -DgroupId=com.alibaba -DartifactId=dubbo -Dversion=2.8.4 -Dpackaging=j ...
- mysql group by使用方法注意
mysql group by使用方法注意 group by 后面只用能用having 不能加 where等域名
- css3mask淡出文字
css3mask淡出文字<pre>.p0_11wrap { width: 0.299rem; height: 7.68rem; overflow: hidden; background: ...
- 【集合系列】- 深入浅出分析Collection中的List接口
一.List简介 List 的数据结构就是一个序列,存储内容时直接在内存中开辟一块连续的空间,然后将空间地址与索引对应. 以下是List集合简易架构图 由图中的继承关系,可以知道,ArrayList. ...
- servlet三大组件
servlet大致可以分为三个:简单servlet.过滤servlet.监听servlet servlet: servlet的创建 创建一个类并实现Servlet接口. 重写service方法. 在服 ...
- Python OpenCV4趣味应用系列(四)---颜色物体实时检测
今天,我们来实现一个视频实时检测颜色物体的小实例,视频中主要有三个颜色物体,我们只检测红色和绿色的球状物体,如下图所示: 第一步需要打开视频(或者摄像头): cap = cv2.VideoCaptur ...
- [Office] Resources for Office Development
Office 2013 Document (.chm) download page: http://www.microsoft.com/en-us/download/details.aspx?id=4 ...