List 的方法列表

方法名 功能说明
ArrayList() 构造方法,用于创建一个空的数组列表
add(E e) 将指定的元素添加到此列表的尾部
get(int index) 返回此列表中指定位置上的元素
size() 返回此列表中的元素数
clear() 移除此列表中的所有元素
isEmpty() 如果此列表中没有元素,则返回true
remove(int index) 移除此列表中指定位置上的元素
indextof(Object o) 返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回-1
toArray 按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组

下面将用一个简单的例子进行说明:

实现类ArrayList

package yjlblog;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Test {

    public static void main(String[] args) {
        List list = new ArrayList();//List 是接口,用多态需要指向它的实现类
        list.add("double kill");
        list.add("three kill");
        list.add("four kill");
        list.add("pentakill");
        System.out.println(list); //[double kill, three kill, four kill, pentakill]
                                //默认调用的是tostring 方法,但是这个头string方法不是object里面的,可以查帮助文档可知,是继承的collection的一个方法
        System.out.println(list.get(2)); //four kill
        String s = (String)list.get(2);//如果用定义变量的形式来表示的话,需要用到强制类型的转换,因为list。get()方法是object的类里的
        System.out.println(list.isEmpty());
        //false
        //list.clear();
        //System.out.println(list.isEmpty());
        //true
        //System.out.println(list.remove(2));//输出制定索引的 被“删除的元素”
        list.remove(1);//删除索引为“1” 的元素
        System.out.println(list);//[double kill, four kill, pentakill],删除了索引为“1”的元素
        System.out.println(list.indexOf("double kill"));//0 输出所指明字符串的 “索引值”

        System.out.println(list.size());// 3 ,返回数组的长度

        Object[] obj = list.toArray();
        System.out.println(obj.length);
        //数组的遍历 for 循环
        for (int i = 0;i < list.size();i++)
        {
            System.out.print(list.get(i)+"  ");

        }
        System.out.println();
        //使用for each 语句
        for (Object x:list)
        {
            System.out.print(x+" ");
        }
        System.out.println();
        //使用迭代器
        //1.先获得list集合的迭代器
        Iterator iterator = list.iterator();
        //2.通过它的hasNest方法,判断是否遍历完成,用循环实现
        while (iterator.hasNext() == true)
        {
        //3.使用next方法,去除它的下一个元素
            System.out.print(iterator.next()+"  ");

        }
        System.out.println();

    }

}
//再写上迭代器的说明
//加上arraylist 和 linbkedlist的区别 和代码
//加上后面的几个方法

实现类LinkedList

  • List 接口的链接列表实现,实现所有可选的列表操作,并且允许所有元素(包括null)。除了实现List接口外,LinkedList类还为在列表的开头及结尾get,remove,insert元素提供了统一的命名方法。这些操作允许将链表列表表应作堆栈、队列、或双端队列。
    LinkedList的部分方法
方法名 功能说明
addFirst(E e) 将指定元素插入此列表的开头
addLast(E e) 将指定元素添加到此列表的结尾
removeFirst() 移除并返回此列表的第一个元素
removeLast() 移除并返回此列表的最后一个元素
getFirst() 返回此列表中的第一个元素
getLast() 返回此列表中的最后一个元素
package yjlblog;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Test {

    public static void main(String[] args) {
        List list = new LinkedList();//List 是接口,用多态需要指向它的实现类
        list.add("double kill");
        list.add("three kill");
        list.add("four kill");
        list.add("pentakill");
        System.out.println(list); //[double kill, three kill, four kill, pentakill]
        //和ArrayList 的其他方法都是一样的,只是加了一些方法

集合的遍历

从上面的例子中也有所提及,下面看代码

  • 使用for 循环
  • 使用for -each 循环
  • 使用Iterator(迭代器)接口
    每个集合类都提供了iterator方法以返回一个迭代器,通过这个迭代器,可以完成集合的遍历删除操作,迭代器的使用步骤如下:
    ****
  • 1.通过Iterator方法获得集合的迭代器
  • 2.通过调用hasNext 方法判断是否存在下一个元素
  • 3.使用next方法,去除它的下一个元素
//数组的遍历 for 循环
for (int i = 0;i < list.size();i++)
{
    System.out.print(list.get(i)+"  ");

}
System.out.println();
//使用for each 语句
for (Object x:list)
{
    System.out.print(x+" ");
}
System.out.println();
//使用迭代器
//1.先获得list集合的迭代器
Iterator iterator = list.iterator();
//2.通过它的hasNest方法,判断是否遍历完成,用循环实现
while (iterator.hasNext() == true)
{
//3.使用next方法,去除它的下一个元素
    System.out.print(iterator.next()+"  ");

}
System.out.println();

java 集合之实现类ArrayList 和 LinkedList的更多相关文章

  1. Java集合系列(二):ArrayList、LinkedList、Vector的使用方法及区别

    本篇博客主要讲解List接口的三个实现类ArrayList.LinkedList.Vector的使用方法以及三者之间的区别. 1. ArrayList使用 ArrayList是List接口最常用的实现 ...

  2. java集合的实现细节--ArrayList和LinkedList

     ArrayList和LinkedList的实现差异 List代表一种线性表的数据结构,ArrayList则是一种顺序存储的线性表,ArrayList底层采用动态数组的形式保存每一个集合元素,Link ...

  3. java——集合、泛型、ArrayList、LinkedList、foreach循环、模拟ktv点歌系统

    集合:一系列特殊的类,这些类可以存储任意类型的对象,长度可变,集合类都在java.util包中. 但是集合记不住对象的类型,当把对象从集合中取出时这个对象的编译类型就变成了Object类型.这样在取元 ...

  4. java集合【12】——— ArrayList,LinkedList,Vector的相同点与区别是什么?

    目录 特性列举 底层存储结构不同 线程安全性不同 默认的大小不同 扩容机制 迭代器 增删改查的效率 总结一下 要想回答这个问题,可以先把各种都讲特性,然后再从底层存储结构,线程安全,默认大小,扩容机制 ...

  5. java集合框架collection(2)ArrayList和LinkedList

    ArrayList是基于动态数组实现的list,而LinkedList是基于链表实现的list.所以,ArrayList拥有着数组的特性,LinkedList拥有着链表的特性. 优缺点 ArrayLi ...

  6. Java 集合:List(ArrayList,LinkedList)

  7. Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)

    概要 前面,我们学完了List的全部内容(ArrayList, LinkedList, Vector, Stack). Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 Ja ...

  8. 【转】Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)

    概要 前面,我们学完了List的全部内容(ArrayList, LinkedList, Vector, Stack). Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 Ja ...

  9. java基础解析系列(十)---ArrayList和LinkedList源码及使用分析

    java基础解析系列(十)---ArrayList和LinkedList源码及使用分析 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder jav ...

随机推荐

  1. dnsmasq一次成功的配置

    第一次用这个小软件,感觉还不错,因为没有像bind那样配置起来繁琐,并且我们也不需要去配置很多文件,内外网访问互不干涉. 我是在centos6.5下进行配置的: 先说说自己的理解: dnsmasq先去 ...

  2. spring的list ,set,map,properties注入(set,get注入)

    ①Message.java: package com.hts.entity; import java.io.Serializable; import java.util.List; import ja ...

  3. 201521123092《java程序设计》第三周学习总结

    #1. 本章学习总结 你对于本章知识的学习总结 #2. 书面作业 **Q1.  代码阅读 public class Test1 { private int i = 1;//这行不能修改 private ...

  4. 201521123096《Java程序设计》第二周学习总结

    1.本周学习总结 (1)学会使用码云管理代码: (2)了解数组和字符串的操作: (3)对完全限定类名有一定的认识. 2.书面作业 (1)使用Eclipse关联jdk源代码,并查看String对象的源代 ...

  5. 201521123097《Java程序设计》第二周学习总结

    1.本周学习总结 (1)学习了java的一些类型和变量. (2)学习了码云的部分功能的使用. 2.书面作业 使用Eclipse关联jdk源代码,并查看String对象的源代码. 为什么要尽量频繁的对字 ...

  6. 201521123065《java程序设计》第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 1.多线程的临界资源:启动多个线程同时运行时,需要同时访问共同的资源,导致结果的不正确性: 2.原子性操作:只进行 ...

  7. 201521123042 《Java程序设计》 第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 上周总结了异常,这周主要总结多线程. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题 ...

  8. 201521123042《Java程序设计》 第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. ①finally块:无论是否被捕获或执行异常一定会被执行. 在try或catch中遇到return语句时,final ...

  9. 201521123056 《Java程序设计》第12周学习总结

    1. 本周学习总结 2. 书面作业 将Student对象(属性:int id, String name,int age,double grade)写入文件student.data.从文件读出显示. 1 ...

  10. 201521123066 《Java程序设计》第九周学习总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什 ...