use List::MoreUtils qw/ uniq /;
my @unique = uniq @faculty;
foreach ( @unique ) {
print $_, "\n";
}
Что касается пункта 2, вы можете сделать панель редактором / средством визуализации и добавить метку вместе с флажком - меткой будет текст, а в поле флажка не будет текст добавлен к нему.
согласно предложению @aperkins это то, что я в конечном итоге сделал в TableCellRenderer, похоже, он работает хорошо:
final private JPanel nodeRenderer = new JPanel();
final private JLabel label = new JLabel();
final private JCheckBox check = new JCheckBox();
...
// in constructor:
final Insets inset0=new Insets(0,0,0,0);
this.check.setMargin(inset0);
this.nodeRenderer.setLayout(new BorderLayout());
this.nodeRenderer.add(this.check, BorderLayout.WEST);
this.nodeRenderer.add(this.label, BorderLayout.CENTER);
Ключи для избавления от нежелательного места на полях кажутся (a ) вызов JCheckBox.setMargin () для уменьшения поля флажка и (б) использование BorderLayout для JPanel.