Spec-Zone .ru
спецификации, руководства, описания, API
|
List
. Опишите их, и отметьте ограничения каждого. Ответ: for
оператор: List<Thing> list; ... for (Thing thing : list) { ... }
for
оператор вместе с Iterator
: List<Thing> list; ... for (Iterator<Thing> it = list.iterator(); it.hasNext(); ) { Thing thing = it.next(); ... }
for
оператор вместе с ListIterator
: List<Thing> list; ... for (ListIterator<Thing> it = list.iterator(); it.hasNext(); ) { Thing thing = it.next(); ... }
Set
, List
, Queue
, и Map
. Для каждого из следующих четырех присвоений определите, какой из четырех базовых интерфейсов хорошо-костюм, и объясните, как использовать его, чтобы реализовать присвоение. List
. Выберите случайного сотрудника, выбирая число между 0
и size()-1
.Set
. Наборы, которые реализуют этот интерфейс, не позволяют тому же самому элементу вводиться не раз.Map
, где ключи являются именами, и каждое значение является количеством численности персонала с тем именем.Queue
. Вызвать add()
добавить сотрудников к очереди, и remove()
удалить их.import java.util.*; public class SortMe { public static void main(String args[]) { SortedSet<StringBuffer> s = new TreeSet<StringBuffer>(); s.add(new StringBuffer("Red")); s.add(new StringBuffer("White")); s.add(new StringBuffer("Blue")); System.out.println(s.first()); } }
TreeSort
элементы должны быть экземплярами class, который реализует Comparable
StringBuffer
не делает.import java.util.*; public class Ran { public static void main(String[] args) { List<String> argList = Arrays.asList(args); Collections.shuffle(argList); for (String arg: argList) { System.out.format("%s ", arg); } System.out.println(); } }
FindDups example
и измените это, чтобы использовать a SortedSet
вместо a Set
. Определите a Comparator
так, чтобы регистр игнорировался, сортируя и идентифицируя элементы набора. import java.util.*; public class FindDups { public static void main(String[] args) { Comparator<String> comparator = new Comparator<String>() { public int compare (String s1, String s2) { return s1.compareToIgnoreCase(s2); } }; SortedSet<String> s = new TreeSet<String>(comparator); for (String a : args) if (!s.add(a)) System.out.println("Duplicate detected: " + a); System.out.println(s.size() + " distinct words: " + s); } }
List<String>
и применяется String.trim
к каждому элементу. Чтобы сделать это, Вы должны будете выбрать одну из трех итеративных идиом, что Вы описали рассматриваемый 1. Два из них не будут давать результат, который Вы хотите, так убедиться, что записали программу, которая демонстрирует, что метод фактически работает! for
оператор не позволяет Вам изменять List
. Используя Iterator
позволяет Вам удалять элементы, но не заменять существующий элемент или добавлять новый. То, что листы ListIterator
: import java.util.*; public class ListTrim { static void listTrim(List<String> strings) { for (ListIterator<String> lit = strings.listIterator(); lit.hasNext(); ) { lit.set(lit.next().trim()); } } public static void main(String[] args) { List<String> l = Arrays.asList(" red ", " white ", " blue "); listTrim(l); for (String s : l) { System.out.format("\"%s\"%n", s); } } }