java 集合(三)List接口
package cn.sasa.demo1; import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List; public class ListDemo {
public static void main(String[] args) { //Collection<String> testColl = new ArrayList<String>();
//testColl.add("qqq");
//speak(testColl);//报错,因为testColl里的元素不是Animal的子类 //List接口的特点:
//有序(存的顺序是怎样的,取出的顺序也是怎样的)
//有索引
//可以存重复元素
//List接口的常用子类:ArrayList/LinkedList
//ArrayList底层采用数组结构,查询快,增删慢,增删会开辟新数组,把原数组的元素copy到新数组中
//LinkList底层采用链表结构,增删快,查询慢,每次查询从链头或链尾查起
//LinkList查找的元素索引如果小于元素长度一半,从链头开始找起,如果大于元素长度的一半,则从链尾找起 //=======================ArrayList==============================
/**
* List接口的特有方法:一般带有索引的方法
* 添加元素
* add(Object e): 向集合末尾处,添加指定的元素
* add(int index, Object e) 向集合指定索引处,添加指定的元素
*/
List<String> strList = new ArrayList<String>();
strList.add("aaa");
strList.add("bbb");
strList.add("ccc");
strList.add("ddd");
System.out.println(strList.toString());
strList.add(2,"ddd");
System.out.println(strList.toString()); /**
* 删除元素
* remove(Object e) 根据对象删除集合中的对象,返回被删除的对象
* remove(int index) 根据索引删除集合中的对象,返回被删除的对象
*/
boolean b = strList.remove("eee");
System.out.println(b);
boolean b1 = strList.remove("aaa");
System.out.println(b1); System.out.println(strList.toString()); /**
* 替换元素
* set(int index, Object e) 将索引上的元素替换成第二个参数的元素
*/
strList.set(0, "hahaha");
System.out.println(strList.toString()); /**
* 取出元素
*/
String str1 = strList.get(2);
System.out.println(str1); //=====================LinkedList=========================
//特点:底层链表结构,查询慢,增删快
//LinkedList 的特有方法不能多态调用
LinkedList<String> strLinkList = new LinkedList<String>();
strLinkList.add("1");
strLinkList.add("2");
strLinkList.add("3");
strLinkList.add("4"); //删除第一个/最后一个
String fir = strLinkList.removeFirst();
String last = strLinkList.removeLast();
System.out.println(fir);
System.out.println(last); strLinkList.add("6");
strLinkList.add("5"); //取出第一个/最后一个
String firget = strLinkList.getFirst();
String lastget = strLinkList.getLast();
System.out.println(firget);
System.out.println(lastget); //添加到链表头/链表尾
strLinkList.addFirst("addFirst");
strLinkList.addLast("addLast");
System.out.println(strLinkList.toString());
}
}
java 集合(三)List接口的更多相关文章
- Java集合框架——Map接口
第三阶段 JAVA常见对象的学习 集合框架--Map集合 在实际需求中,我们常常会遇到这样的问题,在诸多的数据中,通过其编号来寻找某一些信息,从而进行查看或者修改,例如通过学号查询学生信息.今天我们所 ...
- Java集合框架——Set接口
第三阶段 JAVA常见对象的学习 集合框架--Set接口 List集合的特点是有序的,可重复的,是不是存在这一种无序,且能保证元素唯一的集合呢?(HashSet )这就涉及到我们今天所要讲的Set集合 ...
- Java集合框架——List接口
第三阶段 JAVA常见对象的学习 集合框架--List接口 按照集合框架的继承体系,我们先从Collection中的List接口开始学习 (一) 概述及功能(ArrayList演示) (1) 概述 L ...
- Java集合框架之接口Collection源码分析
本文我们主要学习Java集合框架的根接口Collection,通过本文我们可以进一步了解Collection的属性及提供的方法.在介绍Collection接口之前我们不得不先学习一下Iterable, ...
- Java集合之Collection接口
java的集合分为三大接口,分别是Collection,Map,Iterator,集合接口和类在java.util包中,此次主要介绍三大接口之一的Collection接口. 一些Collection允 ...
- Java集合及LIst接口
一.集合的概念 1.概述: 在学习集合前,先回忆一下数组的一个特征---数组有固定的长度,定义一个数组: int[] array = new int[]; 而针对数据长度可变的情况,产生了集合, ja ...
- Java集合框架Map接口
集合框架Map接口 Map接口: 键值对存储一组对象 key不能重复(唯一),value可以重复 常用具体实现类:HashMap.LinkedHashMap.TreeMap.Hashtable Has ...
- Java集合框架顶层接口collectiion接口
如何使用迭代器 通常情况下,你会希望遍历一个集合中的元素.例如,显示集合中的每个元素. 一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合 ...
- java集合之Set接口
Set集合通常不能记住元素添加的顺序,其他的操作和它的父接口基本相同.只是行为上有细微的差别,Set集合不能包含相同的元素.如果尝试添加相同的元素,调用add()方法将返回false,且新元素不能被加 ...
- JAVA集合框架 - Map接口
Map 接口大致说明(jdk11): 整体介绍: 一个将键映射到值的(key-value)对象, 键值(key)不能重复, 每个键值只能影射一个对象(一一对应). 这个接口取代了Dictionary类 ...
随机推荐
- 使用Delve进行Golang代码的调试
问题 安装好vscode编辑项目,出现以下错误: Failed to continue: "Cannot find Delve debugger. Ensure it is in your ...
- Hibernate HQL的使用
1.简单查询(查询所有) Session session=HibernateUtil.getSessionFactory().getCurrentSession(); Transaction tx=s ...
- [TensorBoard] *Cookbook - Tensorboard
Ref: https://www.tensorflow.org/get_started/summaries_and_tensorboard 可视化对于Training的重要性,不言而喻. 代码示范 # ...
- 网络编程 -- RPC实现原理 -- NIO单线程
网络编程 -- RPC实现原理 -- 目录 啦啦啦 Class : Service package lime.pri.limeNio.optimize.socket; import java.io.B ...
- SparkSQL demo
1.数据样本:data1.txt xiaoming,25,chengduxiaohua,23,beijingliuyang,16,hangzhouxiaoqiang,19,zhejiang 2.dem ...
- 为你的mail server增加SPF记录
什么是SPF就是Sender Policy Framework.SPF可以防止别人伪造你来发邮件,是一个反伪造性邮件的解决方案.当你定义了你的domain name的SPF记录之后,接收邮件方会根据你 ...
- 构建工具:grunt、Glup、webpack
相关代码已上传至github 怎么是项目构建? 编译项目中的js, sass, less: 合并js/css等资源文件: 压缩js/css/html等资源文件: JS语法的检查. 构建工具的作用? 简 ...
- MySQL 错误 1366:1366 Incorrect integer value
错误提示:General error: 1366 Incorrect integer value: '' for column 'pay_type' at row 1 (SQL: INSERT INT ...
- Caused by: java.lang.ClassNotFoundException: javax.xml.bind.Validation
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.Validation JAXB API是java EE 的API,因此在java ...
- 三、K3 Cloud 开发插件《K3 Cloud插件开发新手指导 + K3 Cloud插件开发代码调试》
案例需求:在销售订单上新增一个按钮,在订单明细中新增一个字段,命名[即时库存]. 点击按钮,弹出“Hello World!”,并获取订单明细物料的即时库存,填入字段[即时库存]. 开发工具:Visua ...