`

List 不同于数组

 
阅读更多

Java 开发人员常常错误地认为 ArrayList 就是 Java 数组的替代品。 Collections 由数组支持,在集合内随机查找内容时性能较好。 与数组一样,集合使用整序数获取特定项。 但集合不是数组的简单替代。

要明白数组与集合的区别需要弄清楚顺序 和位置 的不同。 例如,List 是一个接口,它保存各个项被放入集合中的顺序,如清单 1 所示:

清单 1. 可变键值

import java.util.*;

public class OrderAndPosition {
    public static <T> void dumpArray(T[] array) {
        System.out.println("=============");
        for (int i=0; i<array.length; i++)
            System.out.println("Position " + i + ": " + array[i]);
    }
    
    public static <T> void dumpList(List<T> list) {
        System.out.println("=============");
        for (int i=0; i<list.size(); i++)
            System.out.println("Ordinal " + i + ": " + list.get(i));
    }
    
    public static void main(String[] args) {
        args = new String[]{"aaa","bbb","ccc"};
        List<String> argList = new ArrayList<String>(Arrays.asList(args));

        dumpArray(args);
        args[1] = null;
        dumpArray(args);
        
        dumpList(argList);
        argList.remove(1);
        dumpList(argList);
    }
}

当第三个元素从上面的 List 中被移除时,其 “后面” 的各项会上升填补空位。 很显然,此集合行为与数组的行为不同(事实上,从数组中移除项与从 List 中移除它也不完全是一回事儿 — 从数组中 “移除” 项意味着要用新引用或 null 覆盖其索引槽)。

分享到:
评论

相关推荐

    List转换成String数组

    本文将详细介绍如何将一个`List&lt;String&gt;`类型的集合转换为`String[]`数组,并通过不同的方法来实现这一过程。这不仅有助于提高代码的可读性和效率,还能帮助开发者更好地理解和运用Java集合框架。 #### 一、背景...

    java 数组转list list转数组 list数组互转

    java 数组转list list转数组 list数组互转 java8 代码示例

    list转换成string数组

    下面我们将通过三个不同的示例来展示如何将`List&lt;String&gt;`转换为`String[]`数组。 ### 示例1:使用toArray方法 这是最简单也是最常用的转换方式,直接调用`List`的`toArray`方法即可完成转换。 ```java import ...

    ajax传递list对象数组

    ### AJAX传递List对象数组知识点详解 #### 一、前言 在Web开发中,前后端交互是必不可少的一个环节。AJAX作为一种实现异步加载数据的技术,可以有效地提升用户体验。本篇将详细介绍如何通过AJAX来传递一个List对象...

    C#数组中List, Dictionary的相互转换问题

    将数组转换为List 将List转换为数组 将数组转换为Dictionary 将Dictionary 转换为数组 将List转换为Dictionary 将Dictionary转换为List 首先这里定义了一个“Student”的类,它有三个自动实现属性。 class ...

    C#使用List类实现动态变长数组的方法

    本文实例讲述了C#使用List类实现动态变长数组的方法。分享给大家供大家参考。具体如下: C#中的list可以当做数组使用,而且无需定义长度,完全是动态的 class Person { public string Name { get; set; } public ...

    数组和list相互转换

    在编程领域,数组(Array)和列表(List)是两种常用的数据结构,它们各自具有不同的特点和适用场景。数组是一种固定长度的数据结构,适合存储已知大小的数据集合;而列表则是一种可变长度的数据结构,适合存储未知...

    List<Long>转一维数组 Long[](csdn)————程序.pdf

    在标题和描述中提到的"List转一维数组 Long[]",就是将一个包含Long类型的列表转换为对应的Long数组。这里我们将详细探讨如何进行这种转换,并了解相关的编程概念。 首先,让我们看下给定的代码片段: ```java /*...

    java XML转成LIST可以转成指定的类数组

    本篇文章将深入探讨如何将XML转换为指定类型的List数组,并涉及多层数据结构的处理。 1. **Java XML解析库** 在Java中,有多种库可用于解析XML文件,如DOM(Document Object Model)、SAX(Simple API for XML)和...

    Java byte数组与其他类型转换

    `putInt`方法将高位字节放在数组的前面,而`putReverseBytesInt`则是将低位字节放在前面,以适应不同的字节顺序需求。`getInt`方法则通过按位或运算重新组合字节,恢复原始int值。 最后,我们关注byte数组与long...

    Python中列表list以及list与数组array的相互转换实现方法

    数组则更适合于数值计算,提供更高效的内存管理和运算性能。通过上述介绍的方法,我们可以轻松地在这两种数据结构之间进行转换,以满足不同的需求场景。希望这些知识点能够帮助读者更好地理解和使用Python中的列表和...

    dotnet-使用Linq筛选满足数组条件的List集合

    在给定的标题“dotnet-使用Linq筛选满足数组条件的List集合”中,我们主要关注如何利用Linq对List集合进行筛选,特别是基于某个数组条件。描述“Linq_List_Contrast_Baseon_Array 使用Linq筛选满足数组条件的List...

    list,set,map,数组间的相互转换

    将数组转换为`Set`的操作类似于将`List`转换为`Set`,因为`Set`不允许重复元素,所以转换过程中会自动去除重复项。 **示例代码:** ```java import java.util.Arrays; import java.util.HashSet; import java.util...

    数组,List 重复元素统计数量,找出唯一的元素

    两种不同方式(使用map和list两种方式)获得一下输出结果 数组和list 可以使用相同的方法,自己测试可以 控制台输出 1出现的次数:2 2出现的次数:2 3出现的次数:2 4出现的次数:3 5出现的次数:1 数组中唯一的元素是:...

    Java List转换成String数组几种实现方式详解

    在Java编程中,有时我们需要将一个`List`对象转换为`String`数组,这在处理数据或进行数据传输时非常常见。以下将详细介绍两种主要的Java `List`转换成`String`数组的方法。 ### 方法一:使用`toArray()`方法 **...

    数组排序 list

    与传统的数组不同,`list`中的元素可以方便地插入和删除,而不必关心它们在内存中的相对位置。这使得`list`在处理动态变化的数据集时特别有用。 在`list`中进行排序,我们可以借助STL的另一个强大工具——`sort`...

    python numpy 一维数组转变为多维数组的实例

    以上这篇python numpy 一维数组转变为多维数组的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:python二维列表一维列表的互相转换实例Python的...

    C++Builder动态对象数组

    ### C++Builder动态对象数组:TList类、DynamicArray与STL中的Vector容器 #### TList 类 在C++Builder中,TList是用于管理动态对象数组的一种方式。它提供了较为简便的方式来创建、管理和销毁一系列对象。TList...

    简单的list相加同样也可用于数组

    简单的list相加同样也可用于数组,很多人都会记得list的一个Add()方法,可是我想可能对于一部分的初学C#的人来说,并不是会经常的用到这个方法。下面就是我对于这个方法的一些简单的应用的示例。可能也有些简单,...

    Java 数组转list.docx

    Java 数组转 List Java 数组转换为 List 是 Java 编程中一个常见的操作。List 是 Java 中的一种集合类型,用于存储多个...Java 数组转换为 List 是 Java 编程中一个常见的操作,两种常见的方法可以满足不同的需求。

Global site tag (gtag.js) - Google Analytics