Java 如何获取数组的索引

Java 如何获取数组的索引,java,android,arrays,Java,Android,Arrays,我正在尝试以下方法: protected double[] cpi = { 10, 10.1, 10.3, 11.6, 13.7, 16.5 } protected CharSequence[] fromDate = { "1914", "1915", "1916", "1917", "1918&quo

我正在尝试以下方法:

protected double[] cpi = { 10, 10.1, 10.3, 11.6, 13.7, 16.5 }
  protected CharSequence[] fromDate = { 
          "1914",
          "1915",
          "1916",
          "1917",
          "1918",
          "1919"};
  protected CharSequence[] toDate = { 
          "1914",
          "1915",
          "1916",
          "1917",
          "1918",
          "1919"};
double factor = cpi[frmDate[k]] / cpi [toDate[k]];
我得到以下两个错误:

类型不匹配:无法从CharSequence转换为int

类型不匹配:无法从CharSequence转换为int

我想做的是。。。如果
fromDate
的选择是index=2,而
toDate
的选择是index=3,则计算以下值:

protected double[] cpi = { 10, 10.1, 10.3, 11.6, 13.7, 16.5 }
  protected CharSequence[] fromDate = { 
          "1914",
          "1915",
          "1916",
          "1917",
          "1918",
          "1919"};
  protected CharSequence[] toDate = { 
          "1914",
          "1915",
          "1916",
          "1917",
          "1918",
          "1919"};
double factor = cpi[frmDate[k]] / cpi [toDate[k]];
只要做:

double factor = cpi[10.3] / cpi[11.6];
其中
k
frmDate
的选择索引,其中
j
toDate
的选择索引

因为现在,您正试图使用字符串作为数组的索引。我假设您希望对
cpi
数组使用相同的索引

为了计算
k
j
,创建一个函数
getIndex(CharSequence[]数组,CharSequence项)

下面是一些伪代码:

double factor = cpi[k] / cpi[j];
private int getIndex(CharSequence[]数组,CharSequence项){
for(int a=0;a
您可能想要:

private int getIndex(CharSequence[] array, CharSequence item) {
    for(int a = 0; a < array.length; a++) {
        if array[a] is item
            return a;
    }
    return -1; //not in it
}

你认为
cpi[10.3]
是什么意思?
cpi[10.3]
是从日期
fromDate
获取所选
cpi
的索引,你需要使用元素的索引位置,而不是实际的元素值,所以更像
cpi[2]/cpi[3]
cpi[10.3]
是一个例子,说明应该有什么,但我明白你的意思:)SotiriosDelimanolis试图说的是:
[]
之间的部分是查找的索引。
10.3
如何成为索引?另一种说法是:如果你被要求喝杯装啤酒,你会怎么做?OP实际上是问如何计算
k
j
。我实际上是用k来表示这两个值,所以j不会进来玩。假设你用的是
frmDate[k]
,我假设OP已经知道了
k
是什么。虽然如果它们不直接对应,我将添加另一个部分。我对两个数组都使用K,但根据所选内容对其进行不同的赋值。我想这就是问题所在。
fromDate
toDate
是选择索引,可以根据用户的不同而变化,而且从来都不是固定不变的。也许这可以奏效。如果x表示charsequence数组。然后我可以从选择中获取值并匹配它,然后得到索引?
x
是否表示charsequence变量?这将起作用,因为我可以获得每个年份的文本值,而不是硬编码年份的文本值,并获得索引。让我测试一下。我有它的工作,但它不是有效的。它是O(n),所以它是有效的。对于一些映射类,它可以是O(logn),但是您在添加/删除O(n*logn)上花费了更多的时间。我的意思是我编写代码的方式:)。。。你看起来很好,只是还没有实现。