java 集合之实现类ArrayList和LinkedList的方法

作者:yjl博客 时间:2023-09-03 05:41:40 

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();

来源:104.116.116.112.58.47.47.119.119.119.46.99.110.98.108.111.103.115.46.99.111.109.47.121.106.108.98.108.111.103.47.112.47.55.54.56.55.54.52.52.46.104.116.109.108.

标签:java,集合,ArrayList,LinkedList
0
投稿

猜你喜欢

  • java中 Set与Map排序输出到Writer详解及实例

    2022-05-01 07:23:56
  • Android中将View的内容保存为图像的简单实例

    2023-11-01 12:45:41
  • spring异步service中处理线程数限制详解

    2021-09-02 23:20:12
  • c#实现摄像头拍照功能示例

    2023-07-11 09:54:06
  • WebService教程详解(一)

    2022-02-26 09:59:50
  • 搭建一个基础的Resty项目框架

    2021-06-08 11:12:06
  • C#实现将一个字符串进行翻转显示的6种方法

    2022-05-07 22:55:10
  • C#中的三种定时计时器Timer用法介绍

    2023-06-09 13:31:13
  • 使用Hibernate根据实体类自动生成表的方法

    2022-12-20 16:54:44
  • java中对List分段操作的实例

    2022-12-05 18:38:48
  • SpringBoot整合OpenCV的实现示例

    2022-09-07 03:53:19
  • Spring Security配置保姆级教程

    2023-11-07 11:46:56
  • C#短时间内产生大量不重复的随机数

    2023-11-28 00:15:53
  • 浅析java 10中的var关键字用法

    2021-12-23 15:18:17
  • Android操作存放在assets文件夹下SQLite数据库的方法

    2023-12-13 21:00:26
  • Java泛型<T> T与T的使用方法详解

    2021-07-12 10:58:42
  • java中Class.getMethods()和Class.getDeclaredMethods()方法的区别

    2021-05-28 23:05:46
  • C#借助OpenCvSharp读取摄像头并显示的实现示例

    2022-12-22 05:49:51
  • C#引用类型和值类型的介绍与实例

    2022-08-11 16:24:34
  • swagger中如何给请求添加header

    2023-05-15 14:27:52
  • asp之家 软件编程 m.aspxhome.com