public class IndexTausch {
private static int[] intArr = { 5, 24, 18, 76 };
public boolean tauschIndex(int l, int r) {
if (l < 0 || l >= intArr.length) {
System.err.println("Ausgangsindex zu hoch oder zu niedrig!");
return false;
}
if (r < 0 || r >= intArr.length) {
System.err.println("Zielindex zu hoch oder zu niedrig!");
return false;
}
int k = intArr[l];
intArr[l] = intArr[r];
intArr[r] = k;
return true;
}
public static void main(String[] args) {
IndexTausch wt = new IndexTausch();
System.out.println("vorher:");
for (int i = 0; i < intArr.length; i++) {
System.out.println(intArr[i]);
}
if (wt.tauschIndex(2, 0)) {
System.out.println("\nnachher:");
for (int i = 0; i < intArr.length; i++) {
System.out.println(intArr[i]);
}
}
}
}
Sind nicht die beiden Indices, sondern die in den Elementen gespeicherten
Werte gegeben, gestaltet sich das Verfahren nur wenig anders: Zunächst
wird das Array durchlaufen. Über eine if-Verzweigung wird abgefragt, ob
der jeweilige Wert mit dem gesuchten Ausgangswert übereinstimmt. Ist
dies der Fall, findet die gleiche Prozedur mit dem Zielwert statt. Der
eigentliche Austausch findet anschließend wie gehabt statt.
private static int[] intArr = { 5, 24, 18, 76 };
public boolean tauschIndex(int l, int r) {
if (l < 0 || l >= intArr.length) {
System.err.println("Ausgangsindex zu hoch oder zu niedrig!");
return false;
}
if (r < 0 || r >= intArr.length) {
System.err.println("Zielindex zu hoch oder zu niedrig!");
return false;
}
int k = intArr[l];
intArr[l] = intArr[r];
intArr[r] = k;
return true;
}
public static void main(String[] args) {
IndexTausch wt = new IndexTausch();
System.out.println("vorher:");
for (int i = 0; i < intArr.length; i++) {
System.out.println(intArr[i]);
}
if (wt.tauschIndex(2, 0)) {
System.out.println("\nnachher:");
for (int i = 0; i < intArr.length; i++) {
System.out.println(intArr[i]);
}
}
}
}
public class WerteTausch {
private static int[] intArr = { 5, 24, 18, 76 };
public boolean tauschValue(int l, int r) {
for (int i = 0; i < intArr.length; i++) {
if (intArr[i] == l) {
for (int j = 0; j < intArr.length; j++) {
if (intArr[j] == r) {
int k = intArr[i];
intArr[i] = intArr[j];
intArr[j] = k;
return true;
}
}
System.err.println("Zweiter Wert nicht im Array vorhanden!");
return false;
}
}
System.err.println("Erster Wert nicht im Array vorhanden!");
return false;
}
public static void main(String[] args) {
WerteTausch wt = new WerteTausch();
System.out.println("vorher:");
for (int i = 0; i < intArr.length; i++) {
System.out.println(intArr[i]);
}
if (wt.tauschValue(5, 76)) {
System.out.println("\nnachher:");
for (int i = 0; i < intArr.length; i++) {
System.out.println(intArr[i]);
}
}
}
}
private static int[] intArr = { 5, 24, 18, 76 };
public boolean tauschValue(int l, int r) {
for (int i = 0; i < intArr.length; i++) {
if (intArr[i] == l) {
for (int j = 0; j < intArr.length; j++) {
if (intArr[j] == r) {
int k = intArr[i];
intArr[i] = intArr[j];
intArr[j] = k;
return true;
}
}
System.err.println("Zweiter Wert nicht im Array vorhanden!");
return false;
}
}
System.err.println("Erster Wert nicht im Array vorhanden!");
return false;
}
public static void main(String[] args) {
WerteTausch wt = new WerteTausch();
System.out.println("vorher:");
for (int i = 0; i < intArr.length; i++) {
System.out.println(intArr[i]);
}
if (wt.tauschValue(5, 76)) {
System.out.println("\nnachher:");
for (int i = 0; i < intArr.length; i++) {
System.out.println(intArr[i]);
}
}
}
}