search a 2 dimensional array in java
How does one iterate through a two dimensional array search for [ ] [Name]?
When the Name is found the Index should be returned so that I can change the values in that array.
[Index] [Values].
Also, how does the syntax look for the storing to the array found? [ ] [index]. Loop through index and set a value. [0] [1] 开发者_C百科= blah.
Thanks
Sometimes it's easier and always cleaner to put the search in a separate method:
private Point find2DIndex(Object[][] array, Object search) {
if (search == null || array == null) return null;
for (int rowIndex = 0; rowIndex < array.length; rowIndex++ ) {
Object[] row = array[rowIndex];
if (row != null) {
for (int columnIndex = 0; columnIndex < row.length; columnIndex++) {
if (search.equals(row[columnIndex])) {
return new Point(rowIndex, columnIndex);
}
}
}
}
return null; // value not found in array
}
This will return the first match only. If you need all, collect all points in a List and return that list at the end.
Usage:
private void doSomething() {
String[][] array = {{"one", "1"},{"two","2"}, {"three","3"}};
Point index = find2DIndex(array, "two");
// change one value at index
if (index != null)
array[index.x][index.y] = "TWO";
// change everything in the whole row
if (index != null) {
String[] row = array[index.x];
// change the values in that row
}
}
Updated due to your comment:
for(String[] subarray : array){
int foundIndex = -1;
for(int i = 0; i < subarray.length; i++){
if(subarray[i].equals(searchString)){
foundIndex = i;
break;
}
}
if(foundIndex != -1){
// change all values that are not at position foundIndex
for(int i = 0; i < subarray.length; i++){
if(i != foundIndex){
subarray[i] = "something";
}
}
break;
}
}
the most basic way is to
for(int xIndex = 0 ; xIndex < 3 ; xIndex++){
for(int yIndex = 0 ; yIndex < 3 ; yIndex++){
if(arr[xIndex][yIndex].equals(stringToSearch)){
System.out.println("Found at"+ xIndex +"," + yIndex);
for(int remainingIndex = 0 ; remainingIndex < 3 ; remainingIndex++ ){
arr[xIndex][remainingIndex]="NEW VALUES";
}
break;
}
}
}
精彩评论