Plik Para.java: public class Para> implements Comparable> { private T pierwszy; private T drugi; public Para(T pierwszy, T drugi) { this.pierwszy = pierwszy; this.drugi = drugi; } @Override public String toString() { return pierwszy.toString() + "\t" + drugi.toString(); } public int compareTo(Para innaPara) { int wartosc = this.pierwszy.compareTo(innaPara.pierwszy); if (wartosc != 0) return wartosc; else return this.drugi.compareTo(innaPara.drugi); } } ---------- Plik MainActivity.java: public class MainActivity extends AppCompatActivity { void para_test(View v) //podłączona przez android:onClick="para_test" { Toast.makeText(getApplicationContext(), "TEST", Toast.LENGTH_LONG).show(); Random r = new Random(); final int size = 10; List> p = new ArrayList>(size); for (int i = 0; i < size; i++) { Para para = new Para(r.nextInt(10), r.nextDouble()); p.add(para); } for (Para para : p) Log.i("1", para.toString()); Collections.sort(p); for (Para para : p) Log.i("2", para.toString()); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } ------------- Zadanie: inny typ dla pierwszego i drugiego pola public class Para, S extends Comparable> implements Comparable>