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接口的更多相关文章

  1. Java集合框架——Map接口

    第三阶段 JAVA常见对象的学习 集合框架--Map集合 在实际需求中,我们常常会遇到这样的问题,在诸多的数据中,通过其编号来寻找某一些信息,从而进行查看或者修改,例如通过学号查询学生信息.今天我们所 ...

  2. Java集合框架——Set接口

    第三阶段 JAVA常见对象的学习 集合框架--Set接口 List集合的特点是有序的,可重复的,是不是存在这一种无序,且能保证元素唯一的集合呢?(HashSet )这就涉及到我们今天所要讲的Set集合 ...

  3. Java集合框架——List接口

    第三阶段 JAVA常见对象的学习 集合框架--List接口 按照集合框架的继承体系,我们先从Collection中的List接口开始学习 (一) 概述及功能(ArrayList演示) (1) 概述 L ...

  4. Java集合框架之接口Collection源码分析

    本文我们主要学习Java集合框架的根接口Collection,通过本文我们可以进一步了解Collection的属性及提供的方法.在介绍Collection接口之前我们不得不先学习一下Iterable, ...

  5. Java集合之Collection接口

    java的集合分为三大接口,分别是Collection,Map,Iterator,集合接口和类在java.util包中,此次主要介绍三大接口之一的Collection接口. 一些Collection允 ...

  6. Java集合及LIst接口

    一.集合的概念 1.概述: 在学习集合前,先回忆一下数组的一个特征---数组有固定的长度,定义一个数组: int[] array = new int[]; 而针对数据长度可变的情况,产生了集合, ja ...

  7. Java集合框架Map接口

    集合框架Map接口 Map接口: 键值对存储一组对象 key不能重复(唯一),value可以重复 常用具体实现类:HashMap.LinkedHashMap.TreeMap.Hashtable Has ...

  8. Java集合框架顶层接口collectiion接口

    如何使用迭代器 通常情况下,你会希望遍历一个集合中的元素.例如,显示集合中的每个元素. 一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合 ...

  9. java集合之Set接口

    Set集合通常不能记住元素添加的顺序,其他的操作和它的父接口基本相同.只是行为上有细微的差别,Set集合不能包含相同的元素.如果尝试添加相同的元素,调用add()方法将返回false,且新元素不能被加 ...

  10. JAVA集合框架 - Map接口

    Map 接口大致说明(jdk11): 整体介绍: 一个将键映射到值的(key-value)对象, 键值(key)不能重复, 每个键值只能影射一个对象(一一对应). 这个接口取代了Dictionary类 ...

随机推荐

  1. UML类图关系大全【转】

    UML类图关系大全 1.关联 双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法. 在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设 ...

  2. SAP项目的整体预算大概是多少?

    例如一家规模包括(5-6个生产型子公司),员工5000人,市值100亿,销售额每年20亿左右的集团公司.上SAP,预算怎么算? 这其中:1)软件费用一般多少? 2)用户费用是怎么算的? 3)维护费用又 ...

  3. Ubuntu上运行Blender,在控制台上查看运行结果

    1.首先在控制台打开Blender. 具体操作:找到Blender的安装路径,我的是:/home/lcx/下载/blender-2.78c-linux-glibc219-x86_64 $cd /hom ...

  4. AOP 切入点表达式

    8.切入点表达式 现在我们介绍一下最重要的切入点表达式: 如上文所说,定义切入点时需要一个包含名字和任意参数的签名,还有一个切入点表达式,就是* findById*(..)这一部分. 切入点表达式的格 ...

  5. .NET中进行Base64加密解密

    方法一: /// <summary> /// Base64加密 /// </summary> /// <param name="Message"> ...

  6. [UFLDL] Linear Regression & Classification

    博客内容取材于:http://www.cnblogs.com/tornadomeet/archive/2012/06/24/2560261.html Deep learning:六(regulariz ...

  7. SpringBoot------Servlet3.0的注解自定义原生Servlet

    1.添加需要使用的依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w ...

  8. actor 内最好不要阻塞

    1. 在使用 akka cluster singleton 时,我需要知道被创建的 singleton proxy 的 actorRef,通过绝对路径加 actorSelection 方法,应该很容易 ...

  9. 【租房合同】2017北京市房屋租赁合同(自行成交版).doc

    最近在北京租房,找租房合同 这个文档还是比较新的,在百度文库上需要积分下载的文档,现在共享给大家吧. 下载地址: https://pan.baidu.com/s/1cEh7lhBqQgkJhB32Df ...

  10. Oracle数据库入门——目录结构

    一.Oracle_Home目录 Oracle_Home主目录位于D:\dev\oracle\product\10.2.0(oracle安装路径)下,它包含Oracle软件运行有关的子目录和网络文件以及 ...