comparison src/org/tmatesoft/hg/internal/ArrayHelper.java @ 658:d10399f80f4e

javac complained about casts, while eclipse compiler is fine
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Thu, 04 Jul 2013 21:09:33 +0200
parents 6334b0267103
children f568330dd9c0
comparison
equal deleted inserted replaced
657:6334b0267103 658:d10399f80f4e
108 108
109 /** 109 /**
110 * Slightly modified version of Arrays.sort1(int[], int, int) quicksort alg (just to deal with Object[]) 110 * Slightly modified version of Arrays.sort1(int[], int, int) quicksort alg (just to deal with Object[])
111 */ 111 */
112 private void sort1(int off, int len) { 112 private void sort1(int off, int len) {
113 @SuppressWarnings("unchecked") 113 Comparable<Object>[] x = comparableSorted();
114 Comparable<Object>[] x = (Comparable<Object>[]) sorted;
115 // Insertion sort on smallest arrays 114 // Insertion sort on smallest arrays
116 if (len < 7) { 115 if (len < 7) {
117 for (int i=off; i<len+off; i++) 116 for (int i=off; i<len+off; i++)
118 for (int j=i; j>off && x[j-1].compareTo(x[j]) > 0; j--) 117 for (int j=i; j>off && x[j-1].compareTo(x[j]) > 0; j--)
119 swap(j, j-1); 118 swap(j, j-1);
176 175
177 /** 176 /**
178 * Returns the index of the median of the three indexed integers. 177 * Returns the index of the median of the three indexed integers.
179 */ 178 */
180 private int med3(int a, int b, int c) { 179 private int med3(int a, int b, int c) {
181 @SuppressWarnings("unchecked") 180 Comparable<Object>[] x = comparableSorted();
182 Comparable<Object>[] x = (Comparable<Object>[]) sorted;
183 return (x[a].compareTo(x[b]) < 0 ? 181 return (x[a].compareTo(x[b]) < 0 ?
184 (x[b].compareTo(x[c]) < 0 ? b : x[a].compareTo(x[c]) < 0 ? c : a) : 182 (x[b].compareTo(x[c]) < 0 ? b : x[a].compareTo(x[c]) < 0 ? c : a) :
185 (x[b].compareTo(x[c]) > 0 ? b : x[a].compareTo(x[c]) > 0 ? c : a)); 183 (x[b].compareTo(x[c]) > 0 ? b : x[a].compareTo(x[c]) > 0 ? c : a));
184 }
185
186 private Comparable<Object>[] comparableSorted() {
187 // Comparable<Object>[] x = (Comparable<Object>[]) sorted
188 // eclipse compiler is ok with the line above, while javac doesn't understand it:
189 // inconvertible types found : T[] required: java.lang.Comparable<java.lang.Object>[]
190 // so need to add another step
191 Comparable<?>[] oo = sorted;
192 @SuppressWarnings("unchecked")
193 Comparable<Object>[] x = (Comparable<Object>[]) oo;
194 return x;
186 } 195 }
187 196
188 /** 197 /**
189 * Swaps x[a] with x[b]. 198 * Swaps x[a] with x[b].
190 */ 199 */