Esta pergunta apresenta dois métodos de classificação () da classe de ferramentas de coleções, como segue:
1. Dois métodos de classificação () da classe de ferramentas de coleções
Formato 1: public static <t estende comparável <?? Super T >> Void Sort (lista <T> Lista)
Nota: Os genéricos <T> Neste método são subclasses da interface comparável, ou seja, apenas os dados do tipo de subclasse de interface comparável podem ser comparados e classificados. Se outros tipos de dados forem comparados e classificados, a interface comparável deve ser herdada e
Métodos de substituição Equals () e compareto (). Entre eles, a classe String e a classe inteira são subclasses de interface comparáveis e podem ser classificadas, enquanto os tipos básicos não podem ser classificados. Os itens de comparação são especificados dentro da classe
Formato 2: Public Static <t> Void Sort (Lista <T> Lista, Comparador <? Super T> C)
Nota: Este método especifica o comparador do método de comparação <?? Super T> C, isto é, C deve implementar o comparador <?? interface super t>, substitua o método compareto () para especificar o item de comparação. Os itens de comparação são especificados fora da classe, o que é mais flexível
2. Exemplo
Maneiras comuns de obter cordas e números no exemplo:
/ *** Gere strings aleatórios e não repetitivos: Número Gere número de strings*/ Lista estática pública <String> generatestring (int número) {list <string> listString = new ArrayList <> (); // usado para armazenar a lista de valor de retorno <Integer> length = null; // String Length StringBuffer sb = new StringBuffer (); // variável intermediária int control = 0; // Control number String[] chars = new String[] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}; while (true) {// Fim do controle if (control == número) {break; } // Gere um número aleatório e gera 2AAAB761-4341-4968-ACEB-3861EE3824B2 Tipo UUID Data String uuid = uuid.randomuuid (). sb.setLength (0); // Obtenha o comprimento de uma corda aleatória, o comprimento não é 0 do {comprimento = getDiffno (1, 11); } while (comprimento.get (0) == 0); // Patch juntos String para (int i = 0; i <comprimento.get (0); i ++) {string str = uuid.substring (i*3, (i*3+3); // converte a sequência STR em hexadecimal e obtenha seu valor int x = integer.parseint (str, 16); // Obtenha o restante: x % 0x3e--0x3e = 3*16 + 14 = 62, onde os chars têm 62 caracteres sb.append (chars [x % 0x3e]); } listString.add (sb.toString ()); controle ++; } retornar listString; }/ *** Gere números aleatórios e não repetitivos: n gera números máximos geram intervalo*/ Lista estática pública <TEGER> getDiffno (int n, int max) {// gerar [0-n] números aleatórios não repetitivos // Lista usada para salvar estes números aleatórios Lista <Teger> = novo ArrayList <> (); Aleatório aleatório = novo aleatório (); Inteiro k; for (int i = 0; i <n; i ++) {do {k = aleatom.nextInt (max); } while (list.contains (k)); list.add (k); } Lista de retorno; } 1. Classifique a lista de genéricos inteiros
/*** 1. Classifique a lista de genéricos inteiros através do método de coleções.sort (); * Crie uma lista de genéricos inteiros, insira dez números aleatórios aleatórios não repetitivos em 100 e chame o método de coleções.sort () para classificá-los* 2. REGRAS DE CLIAR: Primeiro número e depois letras, números 0-9, a ordem das letras AZ*/ public void listIntegersort () {// insert dez não-repetitivos, INTEGERS INTEGERS 100 <TIGN INTEGERS <TILTEGERS; System.out.println ("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println ("Element:" + Integer); System.Out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2. Classifique a lista de genéricos da string
/*** 1. Classifique a lista de genéricos da string; Crie uma lista de genéricos da string, adicione os elementos de sequência fora de ordem, * chame o método de classificação e emitir a ordem de classificação novamente */ public void listStringsort () {list <string> stringList = new ArrayList <String> (); stringList.add ("eipjlcx"); stringList.add ("wvqrufc"); stringList.add ("j"); stringList.add ("hdau2g"); stringList.add ("m0wswhd3"); System.out.println ("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- / *** Classifique a lista de genéricos da string, exigindo uma geração aleatória de 10 seqüências de seqüências não repetitivas, e o comprimento da string está dentro de 10*/ public void listStringRandRandomsort () {// gerar lista de string aleatória <String> listString = generatestring (10); System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println ("-----------------------------------------------------------");3. Lista de outros tipos de genéricos
Implementação da classe do curso
/** * Classe Classe * @Author Administrator * */Public Class Course {public String ID; Nome de String Public; public Course (string id, nome da string) {this.id = id; this.name = nome; } public Course () {} @Override public int hashCode () {final int prime = 31; int resultado = 1; resultado = prime * resultado + ((nome == null)? 0: name.hashcode ()); resultado de retorno; } @Override public boolean equals (object obj) {if (this == obj) retorna true; if (obj == null) retorna false; if (! (OBJ Instância do curso)) retorne false; Curso outro = (curso) obj; if (nome == null) {if (outro.name! = null) retorna false; } else if (! name.equals (outro.name)) retornar false; retornar true; }} A turma do aluno implementa interface comparável e define itens de comparação na classe
importar java.util.hashset; importar java.util.set;/** * aula de estudante * @Author Administrator * */public Class Student implementa comparável <very Student> {public string id; Nome de String Public; Cursos de conjunto público <curso>; public student (string id, nome da string) {this.id = id; this.name = nome; this.courses = new Hashset <course> (); } @Override public int hashCode () {final int prime = 31; int resultado = 1; resultado = prime * resultado + ((nome == null)? 0: name.hashcode ()); resultado de retorno; } @Override public boolean equals (object obj) {if (this == obj) retorna true; if (obj == null) retorna false; if (! (OBJ Instância do aluno)) retorne false; Estudante outro = (estudante) obj; if (nome == null) {if (outro.name! = null) retorna false; } else if (! name.equals (outro.name)) retornar false; retornar true; } @Override public int Compareto (Student O) {// Defina ID como Item de comparação // TODO Método Geral Goletido Retornar TI.id.Cometo (O.Id); }} Implementar a interface do comparador e definir itens de comparação fora da classe
importar java.util.comparator; classe pública StudentComParator implementa o comparador <Dentudy> {@Override public Int Compare (Student O1, Student O2) {// TODO Auto-Gerated Method Stub Return o1.name.compareto (o2.name); }} Comparando aulas de estudantes
/*** Listas de classificação de outros tipos de genéricos, tomando o aluno como exemplo. */ public void listComParatorsort () {list <very Student> List = new ArrayList <Dentudy> (); Lista <Teger> List = getDiffno (4, 1000); StudentList.add (novo aluno (list.get (0) + "", "Mike")); StudentList.add (novo aluno (list.get (1) + "", "Angela")); StudentList.add (novo aluno (list.get (2) + "", "Lucy")); StudentList.add (novo aluno (1000 + "", "Beyonce")); System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println ("Student:" Student.id + ":" + Student.name); System.out.println("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.