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. 负载均衡集群介绍 LVS介绍 LVS调度算法 LVS NAT模式搭建

    LVS BAT模式搭建 更改主机名: hostnamectl set-hostname centos7-three bash 准备工作 • 三台机器 • 分发器,也叫调度器(简写为dir) • 内网: ...

  2. nmon 加权平均法

    Snapshot %tm_act 1 0 2 0 3 0 4 0 5 0 6 6.1 7 6.3 8 6.5 9 9.1 10 5.9 11 0 12 0 13 0 14 0 15 0 (10*0*0 ...

  3. [PGM] What is Probabalistic Graphical Models

    学术潜规则: 概率图模型提出的意义在于将过去看似零散的topic/model以一种统一的方式串联了起来,它便于从整体上看待这些问题,而非具体解决了某个细节. 举个例子:梯度下降,并非解决神经网络收敛问 ...

  4. C#自定义无边框MessageBox窗体

    C#自定义无边框MessageBox窗体 本例子中制作一个无边框的MessageBox窗体 展示效果: 窗体设计 1.添加一个窗体继承原生Form public partial class Messa ...

  5. HTML5实现本地JSON文件的读写

    参考: 使用HTML5来实现本地文件读取和写入  (FileReader读取json文件,FileSaver.js保存json文件) w3school <input>标签 FileRead ...

  6. 1.浅谈CLR

    1.什么是CLR CLR(Common Language Runtime)公共语言远行时,是一个可由多种编程语言使用的“远行时”.CLR的核心功能(比如内存管理.程序集加载.安全性.异常处理和线程同步 ...

  7. db first和code first

    1. db first 是现有数据库,再写代码.根据数据库的表生成类. django里面:python manage.py  inspectdb 2. code first 是先写代码,后创建数据库. ...

  8. git 搭建本地仓库

    文档 创建仓库 mkdir project cd project/ git init git remote add origin /d/project/.git // 仓库创建好了 echo hell ...

  9. nginx 根据端口不同实现负载均衡

    upstream www.abc.com { server www.mynginx.com:91; server www.mynginx.com:92; }server { listen 80; se ...

  10. 前端基础开发之HTML

    简介:                                                                                1.HTML是什么? htyper ...