java中List集合及其实现类的方法详解

List集合_List接口介绍

特点

1).有序的;

2).可以存储重复元素;

3).可以通过索引访问;

List<String> list = new ArrayList<>();
list.add("张无忌");
list.add("张三丰");
list.add("章子怡");
list.add("章子怡");//OK的,可以添加
for(String s : list){
System.out.println(s);//有序的
}

方法

继承了Collection接口的所有方法,并且又有很多自己的方法

void add(String item)
向滚动列表的末尾添加指定的项。
void add(String item, int index)
向滚动列表中索引指示的位置添加指定的项。
void addActionListener(ActionListener l)
添加指定的动作侦听器以从此列表接收动作事件。
void addItemListener(ItemListener l)
添加指定的项侦听器以接收此列表的项事件。
void addNotify()
创建列表的同位体。
void deselect(int index)
取消选择指定索引处的项。
AccessibleContext
getAccessibleContext()
获取与此 List 关联的 AccessibleContext。
ActionListener[]
getActionListeners()
返回已在此列表上注册的所有动作侦听器的数组。
String
getItem(int index)
获取与指定索引关联的项。
int getItemCount()
获取列表中的项数。
ItemListener[]
getItemListeners()
返回已在此列表上注册的所有项侦听器的数组。
String[]
getItems()
获取列表中的项。
<T extends EventListener>
T[]
getListeners(Class<T> listenerType)
返回目前已在此 List 上注册为 FooListener 的所有对象的数组。
Dimension
getMinimumSize()
确定此滚动列表的最小大小。
Dimension
getMinimumSize(int rows)
获取具有指定行数的列表的最少维数。
Dimension
getPreferredSize()
获取此滚动列表的首选大小。
Dimension
getPreferredSize(int rows)
获取具有指定行数的列表的首选维数。
int getRows()
获取此列表中的可视行数。
int getSelectedIndex()
获取列表中选中项的索引。
int[] getSelectedIndexes()
获取列表中选中的索引。
String
getSelectedItem()
获取此滚动列表中选中的项。
String[]
getSelectedItems()
获取此滚动列表中选中的项。
Object[]
getSelectedObjects()
获取对象数组中此滚动列表的选中项。
int getVisibleIndex()
获取上次由 makeVisible 方法使其可视的项的索引。
boolean isIndexSelected(int index)
确定是否已选中此滚动列表中的指定项。
boolean isMultipleMode()
确定此列表是否允许进行多项选择。
void makeVisible(int index)
使指定索引处的项可视。
protected String
paramString()
返回表示此滚动列表状态的参数字符串。
protected void processActionEvent(ActionEvent e)
处理发生在此列表上的动作事件,方法是将这些事件指派给所有已注册的 ActionListener 对象。
protected void processEvent(AWTEvent e)
此滚动列表的进程事件。
protected void processItemEvent(ItemEvent e)
处理发生在此列表上的项事件,方法是将这些事件指派给所有已注册的 ItemListener 对象。
void remove(int position)
从此滚动列表中移除指定位置处的项。
void remove(String item)
从列表中移除项的第一次出现。
void removeActionListener(ActionListener l)
移除指定的动作侦听器,以便不再从此列表接收动作事件。
void removeAll()
从此列表中移除所有项。
void removeItemListener(ItemListener l)
移除指定的项侦听器,以便不再从此列表接收项事件。
void removeNotify()
移除此列表的同位体。
void replaceItem(String newValue, int index)
使用新字符串替换滚动列表中指定索引处的项。
void select(int index)
选择滚动列表中指定索引处的项。
void setMultipleMode(boolean b)
设置确定此列表是否允许进行多项选择的标志。
api

常用方法(以下几个方法都是List接口中特有的方法)

1).增:public void add(int index,E e):将e添加到当前集合的index位置。

2).删:public E remove(int index):删除index位置上的元素,并将删除的元素返回。

3).改:public E set(int index,E element):将element替换index位置上的元素,并将原index位置上的元素返回。

4).查:public E get(int index):获取index位置上的元素。

示例代码:

public static void main(String[] args) {
//List集合中增加自己的add方法,add(int index,E e);
List<String> list=new ArrayList<>();
list.add("aaaa");
list.add("bbbb");
list.add("cccc");
list.add(1,"dddd");
System.out.println(list);
//删除指定索引的元素,并将删除的元素返回
String removeStr=list.remove(2);
System.out.println(removeStr);
System.out.println(list);
//修改指定索引位置上的元素set(int index,E e),并将原index位置上的元素返回
String setStr=list.set(2,"ffff");
System.out.println(setStr);
System.out.println(list);
//通过索引获取指定索引上的元素
String getStr=list.get(2);
System.out.println("索引为3的元素为:"+getStr);
System.out.println(list);
}

实现List接口的常用类_ArrayList

1).list接口常用实现类

2).ArrayList

特点:

  • 查询快----使用索引
  • 增删慢---需要扩容,移位

图解:

方法:

无特有方法

案例

public static void main(String[] args) {
//List集合中增加自己的add方法,add(int index,E e);
ArrayList<String> list=new ArrayList<>();
list.add("aaaa");
list.add("hhhh");
list.add("cccc");
list.add(1,"dddd");
System.out.println(list);
//删除指定索引的元素,并将删除的元素返回
String removeStr=list.remove(2);
System.out.println(removeStr);
System.out.println(list);
//修改指定索引位置上的元素set(int index,E e),并将原index位置上的元素返回
String setStr=list.set(2,"ffff");
System.out.println(setStr);
System.out.println(list);
//通过索引获取指定索引上的元素
String getStr=list.get(2);
System.out.println("索引为3的元素为:"+getStr);
System.out.println(list);
}

3).LinkedList

特点

  • 使用链表实现
  • 增删快,查询慢

图解

方法

新增了一些方法,可以模拟栈、队列:

1).public void push(Object o):压栈 等同于addFirst(E e) ,将指定元素添加到此集合的开头
2).public E pop():弹栈--如果没有元素,会抛异常;

public E poll():弹栈--如果没有元素,会返回null【建议使用】

案例:

public class Demo {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
list.push("孙悟空");
list.push("猪八戒");
list.push("沙和尚");
System.out.println(list);
while (list.size() > 0) {
System.out.println("弹出一个:" + list.poll());
System.out.println("集合大小:" + list.size());
}
}
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java 集合系列(二)ArrayList详解

    ArrayList ArrayList 是通过一个数组来实现的,因此它是在连续的存储位置存放对象的引用,只不过它比 Array 更智能,能够根据集合长度进行自动扩容. 假设让我们来实现一个简单的能够自动扩容的数组,我们最容易想到的点就是: add()的时候需要判断当前数组size+1是否等于此时定义的数组大小: 若小于直接添加即可:否则,需要先扩容再进行添加. 实际上,ArrayList的内部实现原理也是这样子,我们可以来研究分析一下ArrayList的源码 add(E e) 源码分析 /**

  • Java中List add添加不同类型元素的讲解

    问题: 今天看java的list ,list后面的<> 里面可以填多种类型,但是如果不填写类型那就默认为 Object 类型. 所有我门 add 到 list 里的 数据都会被转换成 Object 类型. 而当我门再从list 中取出该数据时,就会发现数据类型已经改变. 解答 java集合中 能添加不同类型的元素其实不同类型的元素,只是地一定层次是不同元素,根本上都继承于Object类,本质上还是同一类型的元素. List<Object> list = new ArrayList&

  • Java中List集合的遍历实例详解

     一.对List的遍历有三种方式   List<String> list = new ArrayList<String>(); list.add("testone"); list.add("testtwo"); ... 第一种: for(Iterator<String> it = list.iterator(); it.hasNext(); ) { .... } 这种方式在循环执行过程中会进行数据锁定,    性能稍差,    同

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

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

  • 详解Java 集合系列(三)—— LinkedList

    LinkedList LinkedList是一种可以在任何位置进行高效地插入和删除操作的有序序列. 它的最基本存储结构是一个节点:每个节点将存储对象,以及前后节点的引用. 结构图 从上面的结构图中,我们可以了解到 ListedList 底层是基于双向链表实现的. 围起来的可以看成 LinkedList 类,它定义了三个 transient 成员变量:first.last.size.这三个变量是整个 LinkedList 类的关键点. 由于是双向链表(每个node都有保存前后节点的引用),因此我们

  • java集合类arraylist循环中删除特定元素的方法

    在项目开发中,我们可能往往需要动态的删除ArrayList中的一些元素. 一种错误的方式: <pre name="code" class="java">for(int i = 0 , len= list.size();i<len;++i){ if(list.get(i)==XXX){ list.remove(i); } } 上面这种方式会抛出如下异常: Exception in thread "main" java.lang.I

  • java中List集合及其实现类的方法详解

    List集合_List接口介绍 特点 1).有序的: 2).可以存储重复元素: 3).可以通过索引访问: List<String> list = new ArrayList<>(); list.add("张无忌"); list.add("张三丰"); list.add("章子怡"); list.add("章子怡");//OK的,可以添加 for(String s : list){ System.out.

  • java中有无参数和返回值的方法详解

    目录 java有无参数和返回值 以下的例子要细细查看 方法的返回值和参数 1.返回值 2.参数 java有无参数和返回值 首先,定义一个土豪类(LocalTyrant) 属性:name moeney smoke 行为一:(无参数无返回值): 行为二:(无参数有返回值): 行为三:(有参数有返回值): 行为四:(有参数无返回值): 以下的例子要细细查看 慢慢分析,切不可急于求成 package cm.tr; class LocalTyrant{ String name; int money; St

  • Java中对list元素进行排序的方法详解

    在Java Collection Framework中定义的List实现有Vector,ArrayList和LinkedList.这些集合提供了对对象组的索引访问.他们提供了元素的添加与删除支持.然而,它们并没有内置的元素排序支持. 你能够使用java.util.Collections类中的sort()方法对List元素进行排序.你既可以给方法传递一个List对象,也可以传递一个List和一个Comparator.如果列表中的元素全都是相同类型的类,并且这个类实现了Comparable接口,你可

  • 基于JAVA中使用Axis发布/调用Webservice的方法详解

    本示例和参考文章的差别在于: 1)deploy.wsdd定义的更详细(对于server端定义了接口:ICalculate): 复制代码 代码如下: <deployment xmlns="http://xml.apache.org/axis/wsdd/"    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">    <service name="Calculate&qu

  • java中关于Map的三种遍历方法详解

    map的三种遍历方法!集合的一个很重要的操作---遍历,学习了三种遍历方法,三种方法各有优缺点~~ 复制代码 代码如下: /* * To change this template, choose Tools | Templates * and open the template in the editor. */package cn.tsp2c.liubao;import java.util.Collection;import java.util.HashMap;import java.util

  • java 中mongodb的各种操作查询的实例详解

    java 中mongodb的各种操作查询的实例详解 一. 常用查询: 1. 查询一条数据:(多用于保存时判断db中是否已有当前数据,这里 is  精确匹配,模糊匹配 使用regex...) public PageUrl getByUrl(String url) { return findOne(new Query(Criteria.where("url").is(url)),PageUrl.class); } 2. 查询多条数据:linkUrl.id 属于分级查询 public Lis

  • Java中的引用和动态代理的实现详解

    我们知道,动态代理(这里指JDK的动态代理)与静态代理的区别在于,其真实的代理类是动态生成的.但具体是怎么生成,生成的代理类包含了哪些内容,以什么形式存在,它为什么一定要以接口为基础? 如果去看动态代理的源代码(java.lang.reflect.Proxy),会发现其原理很简单(真正二进制类文件的生成是在本地方法中完成,源代码中没有),但其中用到了一个缓冲类java.lang.reflect.WeakCache<ClassLoader,Class<?>[],Class<?>

  • 基于Java中最常用的集合类框架之HashMap(详解)

    一.HashMap的概述 HashMap可以说是Java中最常用的集合类框架之一,是Java语言中非常典型的数据结构. HashMap是基于哈希表的Map接口实现的,此实现提供所有可选的映射操作.存储的是对的映射,允许多个null值和一个null键.但此类不保证映射的顺序,特别是它不保证该顺序恒久不变. 除了HashMap是非同步以及允许使用null外,HashMap 类与 Hashtable大致相同. 此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性

  • java编程abstract类和方法详解

    抽象类和抽象方法常用知识点: (1)抽象类作为被继承类,子类必须实现抽象类中的所有抽象方法,除非子类也为抽象类. 也就是说,如果子类也为抽象类,可以不实现父类中的抽象方法.但是,如果有一个非抽象类 继承于抽象子类,需要实现抽象子类,抽象子类的抽象父类的所有抽象方法,新帐旧账一起算. (2)抽象类不能用final进行修饰. (3)抽象类不能被实例化,也就是说你用的时候不能通过new关键字创建. (4)抽象类中可以包含抽象方法和非抽象方法,抽象方法没有方法体,也就是没有具体实现, 只是定义了有什么功

  • java中Servlet监听器的工作原理及示例详解

    监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行. 监听器原理 监听原理 1.存在事件源 2.提供监听器 3.为事件源注册监听器 4.操作事件源,产生事件对象,将事件对象传递给监听器,并且执行监听器相应监听方法 监听器典型案例:监听window窗口的事件监听器 例如:swing开发首先制造Frame**窗体**,窗体本身也是一个显示空间,对窗体提供监听器,监听窗体方法调用或者属性改变:

随机推荐