Что такое JAF? Какова его цель?

Есть много вопросов, чтобы посмотреть на этот ответ, например: https://stackoverflow.com/questions/2784514/sort-arraylist-of-custom-objects-by-property

Но вот примерная программа того, что делать. Я предположил, что вы хотите сначала отсортировать имя, а затем дату. Вы можете поместить логику в пользовательский компаратор.

import java.util.*;

public class SortExample {

  public static class Student {
    public String name;
    public String date;

    public Student(String name, String date) {
      this.name = name;
      this.date = date;
    }
  }

  public static class StudentComparator implements Comparator {
      @Override
      public int compare(Student s, Student t) {
         int f = s.name.compareTo(t.name);
         return (f != 0) ? f : s.date.compareTo(t.date);
      }
  }

  public static void main(String args[]) {
    ArrayList l = new ArrayList(Arrays.asList(
      new Student ("x","2010-10-5"),
      new Student ("z","2010-10-15"),
      new Student ("y","2010-10-05"),
      new Student ("x","2010-10-1")
    ));

    System.out.println("Unsorted");
    for(Student s : l) {
      System.out.println(s.name + " " + s.date);
    }

    Collections.sort(l, new StudentComparator());

    System.out.println("Sorted");
    for(Student s : l) {
      System.out.println(s.name + " " + s.date);
    }
  }
}

Вывод этого:

Unsorted
x 2010-10-5
z 2010-10-15
y 2010-10-05
x 2010-10-1
Sorted
x 2010-10-1
x 2010-10-5
y 2010-10-05
z 2010-10-15

EDIT: сортирует список массивов на месте. Сначала вам нужно скопировать его, если вы хотите, чтобы он был новым списком.

37
задан Michael Petrotta 18 June 2010 в 04:16
поделиться

2 ответа

JavaBeans Activation Framework - это библиотека для абстрагирования привязок / сопоставлений, специфичных для операционной системы, между типами файлов и приложениями, которые с ними работают. Это может быть основано на типах MIME и / или расширениях файлов. На самом деле не более того.

Откройте проводник Windows и щелкните файл правой кнопкой мыши. Здесь могут быть различные действия (например, «Открыть», «Редактировать», «Воспроизвести»). Какие действия связаны с файлом, связано с расширением файла в Windows. JAF - это портативная версия этого. В основном он предназначен для настольных приложений, чтобы иметь возможность взаимодействовать с любыми программами, которые могут использоваться с файлами на этом компьютере.

51
ответ дан 27 November 2019 в 04:40
поделиться

На самом деле это JavaBeans Activation Framework, и я думаю, что документация хорошо объясняет это:

С JavaBeans Activation Framework стандартное расширение, разработчики, использующие технологию Java, могут воспользоваться преимуществами стандартных сервисов для определения типа произвольного куска данных, инкапсулировать доступ к к нему, обнаружить доступные операции над ним, и инстанцировать соответствующий боб для выполнения операцию(и). Например, если браузер получил изображение в формате JPEG, эта структура позволит браузеру идентифицировать этот поток данных как JPEG-изображение, и на основе этого типа браузер мог бы найти и инстанцировать объект, который может манипулировать или просматривать это изображение.

Какие части этого параграфа вам непонятны?

11
ответ дан 27 November 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: