当您使用for循环时,LinkedLIST的“indexOf”方法不提供预期的输出

时间:2015-02-19 04:59:14

标签: java

import java.util.*;  
public class Main {  
public static void main(String[] args) {  
 LinkedList l1=new LinkedList();  
  for (int i=100;i<=600;i+=100)  
  {  
   l1.add(i);  
  }  
  System.out.println(l1);  
  System.out.println(l1.indexOf("200"));  
  System.out.println(l1.lastIndexOf("200"));  
 }  
} 

输出:
[100,200,300,400,500,600]

  

-1 *&lt; -------------为什么你得到这个o / p ...我们不能使用for循环按索引的升序顺序添加数据*

-1


LinkedList l1=new LinkedList();  
l1.add("100");  
l1.add("200");  
l1.add("300");  
l1.add("400");  
  System.out.println(l1);  
  System.out.println(l1.indexOf("200"));  
  System.out.println(l1.lastIndexOf("200"));  
 }

输出:
[100,200,300,400]

  

1 &lt; -------------------在单独添加时,您获得正确的o / p;我的意思是我预期的方式

1


LinkedList l1=new LinkedList();  
for (int i=100;i<=600;i+=100)  
 {  
  l1.add(i);  
 }  
l1.add("100");  
l1.add("200");  
l1.add("300");  
l1.add("400");  
 System.out.println(l1);  
 System.out.println(l1.indexOf("200"));  
 System.out.println(l1.lastIndexOf("200"));

输出:
[100,200,300,400,500,600,100,200,300,400]

  

7 &lt; ---这个o / p甚至不关心使用for循环添加的元素。只考虑单独添加的元素..为什么

7

2 个答案:

答案 0 :(得分:1)

您正在将int添加到列表中,但尝试获取String的索引。你可以试试这个,

System.out.println(l1.indexOf(200));  

答案 1 :(得分:0)

您使用的是整数(int i)。 可能成为问题。添加值时尝试转换为字符串。例如:

import java.util.*;  
public class Main {  
public static void main(String[] args) {  
 LinkedList l1=new LinkedList();  
  for (int i=100;i<=600;i+=100)  
  {  
   l1.add(String.valueOf(i));  
  }  
  System.out.println(l1);  
  System.out.println(l1.indexOf("200"));  
  System.out.println(l1.lastIndexOf("200"));  
 }  
}