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类 ...
随机推荐
- Java知多少(86)文本框和文本区的输入输出
在GUI中,常用文本框和文本区实现数据的输入和输出.如果采用文本区输入,通常另设一个数据输入完成按钮.当数据输入结束时,点击这个按钮.事件处理程序利用getText()方法从文本区中读取字符串信息.对 ...
- msm codec 代码跟踪
sound/soc/codecs/msm8x16-wcd.c static struct spmi_device_id msm8x16_wcd_spmi_id_table[] = { {"w ...
- 设置gem源,解决下载慢的问题
问题解决的最好方法方法 使用google的DNS 8.8.8.8 / 8.8.4.4 另一种解决方式 修改rubygems的source源 $ gem source -r http://rubygem ...
- tronado学习
请求处理程序和请求参数: 原创首发:http://www.cnblogs.com/zxlovenet/p/4128644.html 程序将URL映射到tornado.web.RequestHandle ...
- Xcode6:模拟器消失了?
今天打开Xcode,选择模拟器时发现只剩下了“iPhone 5”和“iPhone 5s”,原来什么“iPad Air”,“iPhone 4s”的都哪里去了?丢了? 别着急,依次打开“Xcode-> ...
- 关于tomcat的session问题
因为有需要每一个项目有独立端口,并且能够单独启动和关闭,所以在一台服务器上配置了多个tomcat.tomcat是完全一样的,只是各自的端口不一致. 现在的问题是单独启动一个tomcat完全没有问题. ...
- python利用lxml读写xml格式文件
之前在转换数据集格式的时候需要将json转换到xml文件,用lxml包进行操作非常方便. 1. 写xml文件 a) 用etree和objectify from lxml import etree, o ...
- xrdp完美实现Windows远程访问Ubuntu 16.04
前言: 在很多场景下,我们需要远程连接到Linux服务器(本文是Ubuntu),传统的连接主要分为两种. 第一种:通过SSH服务(使用xshell等工具)来远程访问,编写终端命令,不过这个是无界面的, ...
- web开发之环境配置和文件系统
web开发中有jsp,html,css,java,pictures等文件和程序,怎么组织他们,使其正确加载,是一个比较大的问题,就像一团乱麻,解不开啊.IDE是个大管家,要对它非常熟悉才可以,跟顺利地 ...
- xss攻击问题以及如何防范
当用户提交评论的时候,比如如下评论内容 111 <scripy>alert(111);</scripy> 这样当现实评论的时候会先弹出111弹框,再显示评论.这就是xss攻击. ...