Java集合-----List详解
List中的元素是有序排列的而且可重复
1.LinkedList
LinkedList是非线程安全的,底层是基于双向链表实现的
LinkedList常用方法:
- toArray() 以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组
- size() 返回此列表中的元素数
- set(int index,E element) 用指定的元素替换此列表中指定位置的元素
- removeLast() 从此列表中删除并返回最后一个元素
- removeFirst() 从此列表中删除并返回第一个元素
- remove(int index) 删除该列表中指定位置的元素
- getFirst() 返回此列表中的第一个元素
- getLast() 返回此列表中的最后一个元素
- get(int index) 返回此列表中指定位置的元素
- add(E element) 将指定的元素追加到此列表的末尾
- add(int index,E element) 在此列表中的指定位置插入指定的元素
- addFirst(E element) 在该列表开头插入指定的元素
- addLast(E element) 将指定的元素追加到此列表的末尾
- clear() 从列表中删除所有元素
2.ArrayList
ArrayList是非线程安全的,底层是基于数组实现
ArrayList常用方法:
- toArray() 以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组
- subList(int fromIndex,int toIndex) 返回此列表中指定的
fromIndex
(包括)和toIndex
之间的独占视图 - size() 返回此列表中的元素数
- set(int index,E element) 用指定的元素替换此列表中指定位置的元素
- removeRange(int fromIndex,int toIndex) 从这个列表中删除所有索引在
fromIndex
(含)和toIndex
之间的元素 - remove(int index) 删除该列表中指定位置的元素
- isEmpty() 如果此列表不包含元素,则返回true
- get(int index) 返回此列表中指定位置的元素
- add(E element) 将指定的元素追加到此列表的末尾
- add(int index,E element) 在此列表中的指定位置插入指定的元素
- clear() 从列表中删除所有元素
package com.gather;
/**
* 人实体类
* @author yyx
* 2019年2月27日
*/
public class Person {
private String userName;
private Integer userAge; public Person(String userName, Integer userAge) {
super();
this.userName = userName;
this.userAge = userAge;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public Integer getUserAge() {
return userAge;
} public void setUserAge(Integer userAge) {
this.userAge = userAge;
} @Override
public String toString() {
return "Person [userName=" + userName + ", userAge=" + userAge + "]";
} }
package com.gather; import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List; /**
*
* @author yyx 2019年2月27日
*/
public class LIstPractise {
public static void main(String[] args) {
List<Person> list = new ArrayList<>();
Person p1 = new Person("张三", 22);
Person p2 = new Person("李四", 23);
Person p3 = new Person("王五", 18);
list.add(p1);
list.add(p2);
list.add(p3); // 第一种遍历方式:for循环
for (int i = 0; i < list.size(); i++) {
Person person = list.get(i);
System.out.println(person);
}
System.out.println("----------------");
// 第二种遍历方式:foreach
for (Person person : list) {
System.out.println(person);
}
System.out.println("----------------");
// 第三种遍历方式:Iterator
Iterator<Person> iterator = list.iterator();
while (iterator.hasNext()) {
Person person = iterator.next();
System.out.println(person);
}
System.out.println("----------------"); LinkedList<Person> linkedList=new LinkedList<>();
linkedList.addFirst(p3);
linkedList.add(p2);
linkedList.addLast(p1); //getFirst() 返回此列表中的第一个元素
System.out.println(linkedList.getFirst());
//getLast() 返回此列表中的最后一个元素
System.out.println(linkedList.getLast());
System.out.println("----------------"); //toArray() 以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组
Object[] persons=linkedList.toArray();
System.out.println(persons[0]);
}
}
3.ArrayList和LinkedList的区别
- ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构
- 对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针
- 对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据
- ArrayList没有实现Queue队列接口,LinkedList实现了Queue接口
4.Vector
Vector是线程安全的,底层是基于动态数组实现
Vector常用方法:
- add(E element) 将指定的元素追加到此Vector的末尾
- add(int index,E element) 在此Vector中的指定位置插入指定的元素
- elementAt(int index) 返回指定索引处的组件
- get(int index) 返回此向量中指定位置的元素
- removeElementAt(int index) 删除指定索引处的组件
- removeRange(int fromIndex,int toIndex) 从此列表中删除所有索引为
fromIndex
(含)和toIndex
之间的元素
package com.gather; import java.util.Iterator;
import java.util.Vector;
/**
* 大小可以动态变化,其存储由容器自动处理
* @author yyx
* 2019年2月28日
*/
public class VectorPractise {
public static void main(String[] args) {
Vector<Person> vector = new Vector<>();
Person p1 = new Person("张三", 22);
Person p2 = new Person("李四", 23);
Person p3 = new Person("王五", 18);
vector.add(p1);
vector.add(p2);
vector.add(p3); Iterator<Person> iterator = vector.iterator();
while (iterator.hasNext()) {
Person person = iterator.next();
System.out.println(person);
}
}
}
Java集合-----List详解的更多相关文章
- java集合框架详解
java集合框架详解 一.Collection和Collections直接的区别 Collection是在java.util包下面的接口,是集合框架层次的父接口.常用的继承该接口的有list和set. ...
- Java集合框架详解(全)
一.Java集合框架概述 集合可以看作是一种容器,用来存储对象信息.所有集合类都位于java.util包下,但支持多线程的集合类位于java.util.concurrent包下. 数组与集合的区别如下 ...
- Java—集合框架详解
一.描述Java集合框架 集合,在Java语言中,将一系类的对象看成一个整体. 首先查看jdk中的Collection类的源码后会发现Collection是一个接口类,其继承了java迭代接口Iter ...
- JAVA集合类型详解
一.前言 作为java面试的常客[集合类型]是永恒的话题:在开发中,主要了解具体的使用,没有太多的去关注具体的理论说明,掌握那几种常用的集合类型貌似也就够使用了:导致这一些集合类型的理论有可能经常的忘 ...
- Java集合-----Set详解
Set是没有重复元素的集合,是无序的 1.HashSet HashSet它是线程不安全的 HashSet常用方法: add(E element) 将指定的元素添加到此集合(如果尚未存 ...
- Java集合-----Map详解
Map与Collection并列存在.用于保存具有映射关系的数据:Key-Value Map 中的 key 和 value 都可以是任何引用类型的数据 Map 中的 ...
- java集合(2)- java中HashMap详解
java中HashMap详解 基于哈希表的 Map 接口的实现.此实现提供所有可选的映射操作,并允许使用 null 值和 null 键.(除了非同步和允许使用 null 之外,HashMap 类与 H ...
- Java集合中List,Set以及Map等集合体系详解
转载请注明出处:Java集合中List,Set以及Map等集合体系详解(史上最全) 概述: List , Set, Map都是接口,前两个继承至collection接口,Map为独立接口 Set下有H ...
- 最新java数组的详解
java中HashMap详解 http://alex09.iteye.com/blog/539545 总结: 1.就像引用类型的数组一样,当我们把 Java 对象放入数组之时,并不是真正的把 Java ...
随机推荐
- jMeter_响应数据乱码
jMeter测试时服务响应数据乱码 方式一:修改配置文件参数 1.修改jMeter安装目录 jmeter.properties 中 sampleresult.default.encoding=UTF- ...
- tensorflow入门笔记(四) tf.summary 模块
模块内的函数: tf.summary.audio(name, tensor, sample_rate, max_outputs=3, collections=None, family=None) 输出 ...
- 20165336 2017-2018-2 《Java程序设计》第1周学习总结
20165336 2017-2018-2 <Java程序设计>第1周学习总结 教材学习内容总结 Java地位.特点:Java具有面向对象.与平台无关.安全.稳定和多线程等优良特性.Java ...
- go不在dock显示运行
用这种方法就可以了go build -ldflags -H=windowsgui XXX.go
- router 设置时 模板的新引法
{ path: '/Index1', name: 'Index', component: () => import ('@/components/Index.vue') },
- 【Python爬虫】BeautifulSoup网页解析库
BeautifulSoup 网页解析库 阅读目录 初识Beautiful Soup Beautiful Soup库的4种解析器 Beautiful Soup类的基本元素 基本使用 标签选择器 节点操作 ...
- cmd远程连接oracle
sqlplus 用户名/密码@IP:端口号/oracle实例
- 【JMeter】获取JDBC响应做接口关联
1:从sql表中将需要取的数据查出来 2:我们需要把这个id为4451的数据从sql里面取出来,传到下一个sql里面,执行删除 3:写一个接口的传参有些不同,变成了var_id_1.var_id是之前 ...
- (1.16)mysql server优化之buffer pool
(1.16)mysql server优化之buffer pool 1.innodb buffer pool 查看 show status like 'Innodb_buffer_pool_%'; 该 ...
- Element-table-formatter格式化数据
1.formatter 用来格式化内容 对table的值进行处理.Function(row, column, cellValue, index){} 使用formatter需要注意以下几点: ...