1 0

最快的方法从list中取指定的值5

List<String> list = new ArrayList<String>();
list.add("aa");
list.add("bb");
list.add("cc");
list.add("dd");
      .
      .
      .
假设我不知道list中各个值的下标,在这种情况下用最快的方法,取出“cc”。
 
2012年6月25日 17:23

14个答案 按时间排序 按投票排序

0 0

采纳的答案

ArrayList是一个顺序存储的数据结构,只能顺序存储吧,查询数据也就只能用顺序遍历。。。。
如果是已经排序的,那么二分查找是可以的,没排序的话顺序遍历吧

一般吧 要想快,用HashMap或者HashSet之类的

2012年6月25日 20:42
2 0

indexOf("cc")

2012年6月25日 18:24
0 0

我觉得很简单啊, list.get(2)

2012年6月26日 16:18
0 0

list.indexOf("dd")

2012年6月26日 15:37
0 0

直接二分,一般的数据是从数据库取出来的,你可以再取出来得时候就order by 下,要是不是数据库取出来的数据,我就不知道除了上面答案的好方法了!

2012年6月26日 14:39
0 0

我前几天看过一些资料,知道遍历list的最快的方式是:
         Object o[];
        o = list.toArray();
        for (Object element : o) {
           String str = (String) element;
        }
反正都是遍历何不找个遍历最快的方式:
         Object o[];
        o = list.toArray();
        for (Object element : o) {
           String str = (String) element;
           if(str.equals("cc")){
}

        }

2012年6月26日 13:58
0 0

如果list中,有重复值的话,用HashMap可能不对

2012年6月26日 12:14
0 0

indexOf("cc")还不是遍历整个线性表,源码是

public int indexOf(Object o) {
	if (o == null) {
	    for (int i = 0; i < size; i++)
		if (elementData[i]==null)
		    return i;
	} else {
	    for (int i = 0; i < size; i++)
		if (o.equals(elementData[i]))
		    return i;
	}
	return -1;
    }

2012年6月26日 10:51
0 0

list .get(list.indexOf("cc") )

2012年6月26日 10:42
0 0

引用

indexOf("cc");


indexOf("cc"); String类中的方法


HashMap键值对应该是最快的。

2012年6月26日 10:36
0 0

用hashmap吧,set的话还是需要遍历,不适合这种取值的场景。假如同样size,hashmap还是要快一些的。

2012年6月26日 10:17
0 0

如你所诉 二分查找快

2012年6月25日 17:35
0 0

indexOf

2012年6月25日 17:33
0 0

List只能是循环,一个个比较了。
List.remove("cc")可以删除cc。

要快速,改用Set,他是直接命中的,不用一个个比较。

2012年6月25日 17:30

相关推荐

    嵌套Map或者List获取key、value值

    本篇将详细介绍如何在嵌套的Map和List中获取key和value值。 首先,让我们理解什么是嵌套的Map。一个Map是一个键值对的集合,其中每个键都是唯一的,并且关联着一个值。当一个Map的值本身又是一个Map时,我们就说这...

    C# 修改list所有对象中的某字段

    `List&lt;T&gt;.ForEach()` 方法是C#中的一个扩展方法,它接受一个Action类型的参数,这个参数是一个无返回值但带有一个与List中元素类型相同参数的方法。我们在Lambda表达式中定义了这个方法,然后传给ForEach执行。 ...

    CSharp_List.zip_C# list_C#中list_C#中list的用法_C#怎么引用List_c# list

    在C#编程中,`List&lt;T&gt;`是.NET框架中常用的一种动态数组,它属于泛型集合,提供了丰富的功能,使得在处理一系列数据时更加灵活高效。`List&lt;T&gt;`类是`System.Collections.Generic`命名空间的一部分,它实现了`IList&lt;T&gt;`...

    如何获取object中的属性值

    通过以上两种方法,我们可以有效地从复杂的数据结构中获取所需的属性值。选择哪种方式取决于具体的需求和项目的现有技术栈。`JSON.NET`因其强大的功能和优秀的性能,在大多数情况下会是更优的选择。但在一些简单场景...

    .NET获取Html字符串中指定标签的指定属性的值

    通过上述方法,我们可以有效地从HTML字符串中提取指定标签的指定属性的值。这种方法不仅适用于简单的HTML结构,对于更复杂的页面结构也同样有效。正则表达式的灵活性使得这种提取方式变得非常强大和通用。在实际项目...

    java从list中取出对象并获得其属性值的方法

    在Java编程中,有时我们需要从一个`List`中获取对象的属性值,特别是在处理各种不同类型的对象集合时。本文将详细介绍如何使用Java的反射机制来实现这一目标。 首先,让我们理解一下`List`接口和反射的基本概念。`...

    从C#中的数组中删除指定元素的几种方法,超简单

    在C#编程中,删除数组中的指定元素是一个常见的任务,特别是在处理数据集合时。本文将介绍五种不同的方法来实现这一功能,适用于初级程序员的面试准备。这些方法展示了C#的基础知识和实际编码技巧。 1. **使用临时...

    python寻找list中最大值、最小值并返回其所在位置的方法

    在Python编程语言中,处理列表(list)数据结构是常见的任务之一。列表可以包含各种类型的数据,如整数、浮点数甚至是其他对象。在实际应用中,经常需要找到列表中的最大值和最小值,并获取它们在列表中的位置。Python...

    C#按指定条件在数组中检索元素

    - `Array.IndexOf`:查找指定值在数组中的索引,如果不存在则返回-1。但不支持按条件查找。 - `Array.Find`:这个方法来自`System.Linq`命名空间,可以接受一个谓词函数,用于按条件查找元素。例如: ```csharp ...

    Dictionary, SortedDictionary, SortedList 横向评测

    SortedList 是一个泛型类,提供了从一组键到一组值的映射。它是一个二叉搜索树,其中 n 是字典中的元素数。检索运算复杂度为 O(log n)。它与 SortedDictionary 泛型类相似,但有所不同。 SortedList 使用的内存比 ...

    C#将List对象转换为BMP图片保存

    然后,开始遍历`List&lt;T&gt;`对象的每个元素,根据元素的值将其转化为颜色,再用`Graphics`对象的`DrawRectangle`或`FillRectangle`方法在图像上绘制相应的像素。颜色的转换可以自定义,例如,你可以使用RGB或HSV模型将...

    C#创建对象列表(List)的不同方法.rar_list_对象

    本篇文章将详细介绍在C#中创建`List&lt;T&gt;`对象的几种不同方法。 1. **直接实例化** 最基本的创建`List&lt;T&gt;`对象的方式是通过直接调用构造函数。例如,如果你有一个自定义类型`Person`,你可以这样创建一个空的`List...

    python 获取一个值在某个区间的指定倍数的值方法

    在Python编程语言中,获取一个值在特定区间的指定倍数的方法是常见的需求,这在处理数据、构建算法或者设计程序时都会用到。这里,我们将深入探讨如何实现这一功能,以及不同方法的优缺点。 首先,让我们回顾一下...

    Java集合Collection、List、Set、Map使用详解

    - `remove(Object o)`:从集合中移除指定的元素。 - `contains(Object o)`:检查集合中是否包含指定的元素。 - `isEmpty()`:检查集合是否为空。 - `size()`:返回集合中的元素数量。 - `clear()`:清空集合中的所有...

    从n个数组中取出所有排列组合(Java实现)

    这个问题的主要目标是从给定的n个数组中找出所有的可能排列组合。Java作为一种强大的编程语言,提供了丰富的工具和方法来解决此类问题。下面我们将深入探讨这个问题的解决方案、相关算法以及Java中的实现细节。 ...

    测量程序编制 - python 27数据类型:List(列表)-函数.pptx

    key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。 ;...

    Python中返回字典键的值的values()方法使用

    `values()`方法的主要作用是从字典中提取所有值,并以列表的形式返回。这些值可以是任何类型的数据(整型、浮点型、字符串、列表等),取决于字典的设计。 ##### 语法 `values()`方法的语法非常简单,不需要传递...

    使用Lambda表达式查找指定字符

    在“使用Lambda表达式查找指定字符”的场景中,我们可能面对的是一个字符数组或字符串,目标是找出包含特定字符的所有位置或子串。 例如,如果我们有一个字符串变量`str`,并且想要找到所有出现字符'a'的位置,我们...

    android中intent传递list或者对象的方法

    以下是一些在Intent中传递List或对象的方法: 方法一:直接传递基本类型的List 如果你的列表包含的是基本数据类型,如String或Integer,可以直接使用Intent提供的方法: ```java // 传递List intent....

    精彩编程与编程技巧-快速选择里List全部项目...

    根据给定的信息,本文将详细解释如何在编程中快速选择列表(List)中的所有项目,并深入探讨其中涉及到的关键概念和技术。 ### 一、快速选择列表(List)中的所有项目 #### 1.1 概述 在许多应用程序中,列表(List)是...

Global site tag (gtag.js) - Google Analytics