Potrzebuje dostać się do numeru indeksu tablicy, to znaczy mam np. tablica[6] i chcę otrzymać liczbę 6
istnieje jakaś metoda która mi to umożliwi?

- Rejestracja:ponad 9 lat
- Ostatnio:około 4 lata
- Postów:42
Jeśli jest typu int i składa się z 6 elementów możesz spróbować tak :
#include <iostream>
using namespace std;
int main()
{
int tablica[6];
cout << (sizeof(tablica) / (sizeof(int)));
return 0;
}
sizeof(tablica) - zwraca 24
sizeof(int) - zwraca 4
- Rejestracja:ponad 8 lat
- Ostatnio:ponad 6 lat
- Lokalizacja:Polska, Wrocław
- Postów:26
Ale tablica[6] nie musi mieć wartości 6 :D

bogdans napisał(a):
tablica.length
nie o to mi chodzi
mam np.
int[] x = new int[3];
tab[0]=1;
tab[1]=1;
tab[2]=1;
int z = tab[2].zwróćIndeksTablicy(); //z=2
chodzi mi o tę metodę zwróćIndeksTablicy() czy istnieje taka metoda?

- Rejestracja:prawie 17 lat
- Ostatnio:prawie 5 lat
Opisz problem dokładniej. Który indeks ta metoda ma zwrócić?

tab[0]
to 0
a tab[123]
to 123
.


tab[i]
chodzi mu o wartość i
.

tab[i]
pytanie jest bez sensu.

tab[i]
.
bogdans napisał(a):
Nadal nie rozumiem. Chodzi o coś takiego
tab.getIndex(value)
ma zwrócić indeks ind
(pierwszy, ostatni, losowy) taki, że tab[ind] = value
?
ciężko mi lepiej zobrazować co mam na myśli, mam wrażenie ze ująłem juz to wystarczająco jasno i szweszwe też ujął to jasno, ale spróbuje jeszcze tak. Wyobraźmy sobie tak dialog
[Ja] - hej bogdans czy mógłbyś powiedzieć mi jaki NUMER INDEKSU ma ta zmienna tab[127]?
[bogdans] - Numer indeksu tab[127] to oczywiście 127
[Ja]- a numer indeksu tab[51554] ?
[bogdans] - to 51554, chciałbyś możę wiedzieć coś o wartościach jakie znajdują się pod tymi zmiennymi?
[Ja]- Nie wartości zawarte pod tab[127] oraz tab[51554] mnie nie interesują. Już wszystko mi powiedziałeś. Dzięki!

nie chodzi mi o to aby zwracał mi numery indeksów w których wartość to X
mająć tab[63].zwróćIndeksTejZmiennej(); zwróci mi liczbe jest pomiędzy "tab[ " a " ]" czyli 63
mając wyrażenie
System.out.println( tab[63].zwróćIndeksTejZmiennej(); );
w konsoli wypisze mi " 63"
System.out.println( tab[120].zwróćIndeksTejZmiennej(); );
w konsoli wypisze mi " 120"

- Rejestracja:prawie 17 lat
- Ostatnio:prawie 5 lat
Po pierwsze, tab[63]
może być typu prostego, np. int
i nie można na rzecz tab[63]
wywołać żadnej metody.
Po drugie, jeśli nawet tab[63]
jest obiektem, to ten obiekt nie wie czy siedzi w jakichś tablicach, a jeśli siedzi, to jaki ma indeks.
Może Tobie chodzi o to by ze Stringu "tab[63]" wyciąć to co jest między nawiasami kwadratowymi.

- Rejestracja:ponad 11 lat
- Ostatnio:5 dni
- Lokalizacja:Kraków
- Postów:1694
Nie bardzo wiem w jakim celu chcesz dostać indeks tablicy skoro ten indeks tam sam podajesz.
Zawsze możesz przypisać go do jakiejś zmiennej
int i = 2;
wtedy index tab[i]
wynosi i
Ewentualnie, tak jak ktoś podał link, ale to działa tylko dla tablicy gdzie każda wartość jest unikalna.
(Arrays.asList(tab)).indexOf(tab[5]);
Z tym, że dla
Integer[] tab = {1, 2, 3, 4, 5, 3};
(gdzie 3 występuje 2 razy) dla tab[5]
dostaniesz 2 zamiast 5.
Przede wszystkim powiedz co próbujesz osiągnąć bo wszystko wskazuje na to, że zabierasz się do problemu od złej strony.
"Może Tobie chodzi o to by ze Stringu "tab[63]" wyciąć to co jest między nawiasami kwadratowymi."
z tym bym sobie poradził
"Po pierwsze, tab[63] może być typu prostego, np. int i nie można na rzecz tab[63] wywołać żadnej metody.
Po drugie, jeśli nawet tab[63] jest obiektem, to ten obiekt nie wie czy siedzi w jakichś tablicach, a jeśli siedzi, to jaki ma indeks."
to chyba mi wyjaśniło wszystko. Po prostu nie da się tego wykonać

- Rejestracja:ponad 9 lat
- Ostatnio:około 3 lata
- Lokalizacja:Warszawa
- Postów:1264
Pomijając cały bezsens pytania, nie wiem jak w Javie, ale ogólnie da się taka bzdurę zrobić, nawet bez tworzenia nowej tablicy obektów z tablicy bazowej, przykład w JS:
function nonsenseArrayProxy(arr) {
return new Proxy(arr, {
get(target, property) {
if (property === 'raw') {
return target;
}
return {
index: Number(property),
value: target[property]
}
}
});
}
/* usage */
const arr = nonsenseArrayProxy(['foo', 'bar', 'baz']);
// get index:
console.log(arr[1].index); // => 1
// get value (two options):
console.log(arr[1].value); // => 'bar'
console.log(arr.raw[1]); // => 'bar'
// for loops use raw array:
arr.raw.forEach(element => console.log(element));
Powtarzam - nie ma to żadnego zastosowania, ot gimnastyka przed poniedziałkiem ;)
@Maciej Cąderek masz racje, do niczego nie było mi to potrzebne po prostu złe popatrzyłem na problem a jako że mam tendencje do komplikowania rzeczy to powstał ten wątek :)
Maciej Cąderek