Автор: мисс_граффити 7.06.2007 2:46
Доброго времени суток!
<Здесь идет рассказ о тяжкой доле студенток, которые не по делу решили повыпендриваться.>
В общем, есть несколько типовых задач, которые я не представляю, как решать. Типа такого:
С помощью отображения посчитать частоту появления во входном символьном потоке каждого символа.
Посчитать с помощью отображения частоту появления в заданной строке каждого слова.
Реализовать в виде статического метода разложение целого числа на простые множители. Вернуть из метода результат разложения в виде отображения каждого множителя на степень, с которым он входит в отображение.
Ну и т.п. Их много, все похожие.
Это должны быть не полноценные программки, а буквально 3 строки кода.
Вопрос такой: никому не попадалось примеров чего-то подобного? То есть использование отображений...
Автор: hardcase 11.06.2007 5:24
Цитата(мисс_граффити @ 6.06.2007 23:46)
Вопрос такой: никому не попадалось примеров чего-то подобного? То есть использование отображений...
Полагаю проблема в том, что такое "отображение". Отображение в java реализуется через интерфейс Map (пакет java.util) (в C++ через STL-класс map и multi_map, в C# через Dictionary)
Код
public interface Map<K,V> {
boolean containsKey(Object key);
boolean containsValue(Object value);
V get(Object key);
V put(K key, V value);
V remove(Object key);
}
Это не полное определение, но в целом, думаю ясно, для чего нужен этот интферфейс: он позволяет ставить в соответствие объектам класса K объекты класса V. Т.е. выполнять отбражение V -> K.
Для использования этого интерфейса есть классы:
Код
public class HashMap<K,V>
extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable
{
...
}
public interface SortedMap<K,V> extends Map<K,V>
{
...
}
И ещё очень и очень много Map-ов. Если воспользоваться поиском по rt.jar (в нем лежит пакет java.util) можно найти дофига классов.
Вот для затравки:
Код
import java.lang.*;
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(new Integer(10), "String 1!");
map.put(new Integer(11), "hello, world!");
map.put(new Integer(12), "Another one sting");
map.put(new Integer(13), "Превед, мир!");
System.out.println(map.toString());
}
}
Но для стринг-интов есть свой класс - StringIntMap, и для неважно чего - KeyIntMap.
По поводу задач - они простые, сама осилишь ;)
Автор: мисс_граффити 13.06.2007 3:46
Цитата
По поводу задач - они простые, сама осилишь
да, конечно.
спасибо... написал именно то, чего мне не хватало!