어떻게 찾을 수 있는 요소를 색인입니다 int 어레이입니다?

색인입니다 가치를 찾을 수 있는 방법은 특정 유형의 jave 어레이입니다 int '?'

가끔 내 정렬하지 않음 '찾았다' 를 사용하여 라이스트비나리시치 어레이입니다 뿐 아니라 보기입니다 정답.

질문에 대한 의견 (7)
Integer[] array = {1,2,3,4,5,6};

Arrays.asList(array).indexOf(4);

참고로 이 솔루션은 트레이즈라페 새 객체 생성 형식 때문에 Integer&gt List<;).

또한 이 루프 또는 호출하십시오 don& # 39 싶지 않다, 뭐 그런 당신이 약간만이라도 이후 새 객체를 만들 때마다

해설 (5)

또 다른 옵션을 사용하는 경우, 구아바 모음 [1] 는 [린츠실리네쇼프]

// Perfect storm:
final int needle = 42;
final int[] haystack = [1, 2, 3, 42];

// Spoiler alert: index == 3
final int index = Ints.indexOf(haystack, needle);

이 과정은 매우 공간, 시간 부족 및 코드 재사용합니다 때 선택할 수 있다. 또한 매우 간결한.

[1]: http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/primitives/Ints.html # %20int% ints.indexof&quot indexOf% 28int% 5b% 5d, 29 ";

해설 (0)

[1] 및 [apiu] 에 대해 먼저 정렬하려면 어레이입니다 썻냐면 합니다.

그래서:

Arrays.sort(array);
Arrays.binarySearch(array, value);

39 don& 경우, 정렬하려면 어레이입니다 된 것입니다.


public int find(double[] array, double value) {
    for(int i=0; i
해설 (2)

이 방법을 복제본에 를 클래스


 public int getArrayIndex(int[] arr,int value) {

        int k=0;
        for(int i=0;i
해설 (0)

이진 탐색 정렬하려면 사용하기 전에 값을 합니다. 그렇지 않으면 수작업식 시도하시려면 방법은 모든 정수 in your 탭.

public int getIndexOf( int toSearch, int[] tab )
{
  for( int i=0; i< tab.length ; i ++ )
    if( tab[ i ] == toSearch)
     return i;

  return -1;
}//met

다른 방법이 될 수 있는 모든 정수, Integer&gt 각 가치를 매핑하려면 인덱스화할 map<;).

tab[ index ] = value;
if( map.get( value) == null || map.get( value) > index )
    map.put( value, index );

그리고 마피제 (가치) 를 내려받습니다 색인입니다.

감사합니다.

233 st& 판.

@pst, 의견 감사드립니다. 다른 대안이 게시물로의 수 있는 방법?

해설 (1)

변환하십시오 redhat. 목록) 을 사용할 수 있습니다, indexof 방법:

Array.asList(array).indexOf(1); 

http://download.oracle.com/javase/1.5.0/docs/api/java/util/Arrays.html # 아리스트 (t) http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html # indexOf (자바드랑드로비치)

해설 (1)

현대 jave 이런 문제를 해결하기 위해 사용할 수 있습니다. 아래 코드는 사용하십시오.

static int findIndexOf(int V, int[] arr) {
        return IntStream.range(1, arr.length).filter(i->arr[i]==V).findFirst().getAsInt();
    }
해설 (0)
    Integer[] arr = { 0, 1, 1, 2, 3, 5, 8, 13, 21 };
    List arrlst = Arrays.asList(arr);
    System.out.println(arrlst.lastIndexOf(1));
해설 (0)

단순하다.


public int getArrayIndex(int[] arr,int value) {
    for(int i=0;i
해설 (0)

누구나 답을 찾는 경우 여전히 -

  1. [아파치 커먼즈 라이브러리란] [1] 아라위틸스트린드쇼프 () 를 사용할 수 있습니다.

  2. 자바 API 를 사용하는 경우 8 스트리아누스 사용할 수도 있습니다.

public static int indexOf (int, int 발루토핀드 어레이입니다 []) { if (어레이입니다 = null) { 반품하십시오 - 1. } 아나스타림그레인지 반품하십시오 (0, 라이자리 크시) 윈필터 (i - &gt. 발루토핀드 = 어레이입니다 [i]) 자핑드퍼스트 () 자오레스 (-1). }

[1]: # https://commons.apache.org/proper/commons-lang/javadocs/api-3.1/org/apache/commons/lang3/arrayutils.html indexOf (int 20int [], %)

해설 (0)
static int[] getIndex(int[] data, int number) {
    int[] positions = new int[data.length];
    if (data.length > 0) {
        int counter = 0;
        for(int i =0; i < data.length; i++) {
            if(data[i] == number){
                positions[counter] = i;
                counter++;
            }
        }
    }
    return positions;
}
해설 (0)
  • 이진 search: 이진 탐색 인덱스화할 찾을 수 있는 배열 요소의 배열을 사용할 수도 있습니다. 그러나 이 어레이에는 정렬할지 는 이진 탐색 경우에만 사용할 수 있습니다. 우리 java 는 Java 에서 찾을 수 있는 기능을 갖춘 붙박이 어레이에는 다른 요소가 되는 경우 현재 it 지수는 library라는 레 터너 되돌려줍니다 - 1. 복잡성입니다 적립율은 O (log n). 다음은 구축상의 이진 검색.
public static int findIndex(int arr[], int t) { 
   int index = Arrays.binarySearch(arr, t); 
   return (index < 0) ? -1 : index; 
} 
해설 (0)

이렇게 할 수 있습니다.

 public class Test {

public static int Tab[]  = {33,44,55,66,7,88,44,11,23,45,32,12,95};
public static int search = 23;

public static void main(String[] args) {
    long stop = 0;
    long time = 0;
    long start = 0;
    start = System.nanoTime();
    int index = getIndexOf(search,Tab);
    stop = System.nanoTime();
    time = stop - start;
    System.out.println("equal to took in nano seconds ="+time);
    System.out.println("Index  of searched value is: "+index);
    System.out.println("De value of Tab with searched index is: "+Tab[index]);
    System.out.println("==========================================================");
    start = System.nanoTime();
    int Bindex = bitSearch(search,Tab);
    stop = System.nanoTime();
    time = stop - start;
    System.out.println("Binary search took nano seconds ="+time);
    System.out.println("Index  of searched value is: "+Bindex);
    System.out.println("De value of Tab with searched index is: "+Tab[Bindex]);
}

public static int getIndexOf( int toSearch, int[] tab ){
     int i = 0;
     while(!(tab[i] == toSearch) )
     {  i++; }
       return i; // or return tab[i];
   }
public static int bitSearch(int toSearch, int[] tab){
    int i = 0;
    for(;(toSearch^tab[i])!=0;i++){
    }
    return i;

}

}

배타적 논리합 (xor) 를 추가로:)

해설 (4)
/**
     * Method to get the index of the given item from the list
     * @param stringArray
     * @param name
     * @return index of the item if item exists else return -1
     */
    public static int getIndexOfItemInArray(String[] stringArray, String name) {
        if (stringArray != null && stringArray.length > 0) {
            ArrayList list = new ArrayList(Arrays.asList(stringArray));
            int index = list.indexOf(name);
            list.clear();
            return index;
        }
        return -1;
    }
해설 (1)

39 를 통해 찾을 때까지 어레이입니다 you& 인덱스화할 걸을 수 있습니다, re 찾고 사용하거나 '목록' 를 사용할 수 있습니다. 참고) 으로 변형할 수 있는 어레이입니다 바뀌엇어요 와 ['아리스트 ()'] (http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html # aslist% 28t. 29%).

해설 (0)

Main 방법을 사용하는 루프:

  • 제 3 for 루프 비유하사 내 질문에 대한 해답을.
  • I made in my 예제에서와 배열입니다 가장 작은 정수, 루프 변수를 지정할 수 있고, 20 임의적입니까 중지되었는지 위치를 어레이입니다 도달했음 가장 작은 값을 계산 때 동시에 반복에.
import java.util.Random;
public class scratch {
    public static void main(String[] args){
        Random rnd = new Random();
        int randomIntegers[] = new int[20];
        double smallest = randomIntegers[0];
        int location = 0;

        for(int i = 0; i < randomIntegers.length; i++){             // fills array with random integers
            randomIntegers[i] = rnd.nextInt(99) + 1;
            System.out.println(" --" + i + "-- " + randomIntegers[i]);
        }

        for (int i = 0; i < randomIntegers.length; i++){            // get the location of smallest number in the array 
            if(randomIntegers[i] < smallest){
                smallest = randomIntegers[i];                 
            }
        }

        for (int i = 0; i < randomIntegers.length; i++){                
            if(randomIntegers[i] == smallest){                      //break the loop when array location value == 
                break;
            }
            location ++;
        }
        System.out.println("location: " + location + "\nsmallest: " + smallest);
    }
}

코드 출력입니다 모든 숫자는 위치, 위치, 그리고 그들의 뒤를 이어 최소 가장 작은 번호입니다.

해설 (0)
Integer[] array = {1, 2, 3, 4, 5, 6};

for (int i = 0; i < array.length; i++) {
    if (array[i] == 4) {
        system.out.println(i);
        break;
    }
}
해설 (1)