Приветствую Вас ГостьВторник, 14.05.2024, 01:42

Программирование на Java, Android, Delphi


Блог

Главная » 2015 » Сентябрь » 16 » Сортировка коллекции различными способами
12:44
Сортировка коллекции различными способами
Небольшие куски кода по сортировке
package main;

import java.util.Iterator;

public class Point implements Comparable{
 private int X;
 private int Y;
 private int Z;
 
 public Point(int x, int y, int z) {
 super();
 X = x;
 Y = y;
 Z = z;
 }
 public int getX() {
 return X;
 }
 public void setX(int x) {
 X = x;
 }
 public int getY() {
 return Y;
 }
 public void setY(int y) {
 Y = y;
 }
 public int getZ() {
 return Z;
 }
 public void setZ(int z) {
 Z = z;
 }
 @Override
 public String toString() {
 StringBuilder builder = new StringBuilder();
 builder.append("Point [X=");
 builder.append(X);
 builder.append(", Y=");
 builder.append(Y);
 builder.append(", Z=");
 builder.append(Z);
 builder.append("]");
 return builder.toString();
 }
 //@Override
 public int compareTo(Point o) {
 return this.X - o.X;
 }
 
}

package main;

import java.util.function.Consumer;

public class PointConsumer implements Consumer {

 @Override
 public void accept(Point t) {
 if (t.getX() > 100 || t.getY() > 100 || t.getZ() > 100){
 System.out.println("Неправильно задана координата: " + t.toString());
 }
 else{
 System.out.println("ПРАВИЛЬНАЯ КООРДИНАТА: " + t.toString());
 }
 
 }

}

package main;

import java.util.AbstractList;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Random;

public class MainProjectClass {
 
 private static final String Separatishe = "Это сепаратор!!!!!";

 public static void main(String[] args) {
 
 List points = new ArrayList<>();
 Random rnd = new Random();
 
 for(int i = 0; i < 1000; i ++){
 points.add(new Point(rnd.nextInt(300), rnd.nextInt(300), rnd.nextInt(300)));
 }
 
 Iterator iter = points.iterator();
 while (iter.hasNext()){
 System.out.println(iter.next());
 }
 
 System.out.println("Выведем неправильные координаты:");
 iter = points.iterator();
 iter.forEachRemaining(new PointConsumer());
 
 //в функциональном стиле
 points.forEach(value-> {System.out.println(value); System.out.println("-----");});
 
 points.forEach(value -> System.out.println(value));
 
 iter = points.iterator();
 iter.forEachRemaining(value -> {System.out.println("через итератор: " + value.toString()); System.out.println(Separatishe);});
 
 //сортируем через вспомогательный класс Collections используя реализуемый в Point компаратор
 Collections.sort(points);
 //сортируем прямо через коллекцию использую компаратор реализуемый в Point
 points.sort(null);
 
 //сортируем используя новый компаратор реализованный в анонимном классе
 points.sort(new Comparator(){
 @Override
 public int compare(Point p1, Point p2){
 return p1.getZ() - p2.getZ();
 }
 }); 

 //сортируем в функциональном стиле - для сравнения используется компаратор класса Point
 points.sort((value1, value2) -> value1.compareTo(value2));
 
 //сортируем в функциональном стиле - компаратор реализуем тут же
 points.sort((value1, value2) -> {return value1.getY() - value2.getY();});

 
 points.forEach(value -> System.out.println(value.toString()));
 
 }

}
Категория: Java (Общие вопросы) | Просмотров: 644 | Добавил: alex | Теги: Java, сортировка | Рейтинг: 0.0/0
Категории раздела
Java (Общие вопросы) [17]
Java (Библиотека, пакеты Java) [17]
Java (Разработка программного обеспечения на Java) [5]
Java (Среда разработки NetBeans) [5]
JSF + PrimeFaces [21]
Java EE [11]
Разное [3]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Поиск
Календарь
«  Сентябрь 2015  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
282930
Архив записей