13 / 11 / 1
Регистрация: 02.11.2009
Сообщений: 194
1

Передача функции в качестве параметра

13.10.2011, 20:56. Показов 4957. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть функция которая генерирует строковые переменные и записывает их в файл. В файл они должны записываются по разному(в текстовый, экселевый и с разной стуктурой). У меня уже есть 2 функции с различной реализацией записи в файл. На подходе 3я и не последняя. Как сделать так, чтобы в эту функцию передавалась функция которая работает с файлом, если так можно конечно.
И еще, в итоге в файле около 5000 слов. Как лучше записывать в файл, сначала все сгенерировать, а потом записать, или по ходу генерации(5-20 слов за итерацию).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.10.2011, 20:56
Ответы с готовыми решениями:

Передача имени класса в качестве параметра функции
Добрый вечер! Имеется 3 класса: class Class1 { public static String run(){ return...

Передача флагов в качестве параметра
День добрый, подскажите пожалуйста, как можно передать флаги в качестве параметра в другой метод? ...

Передача ArrayList в качестве параметра методу, и в дальнейшем получение свойств объектов которые хранятся в ArrayList
Всем привет. Задача следующая: a. Есть классы Fruit -> Apple, Orange;(больше фруктов не надо) b....

Передача функции как параметра
Приветствую. Такой вопрос, мб отчасти бредовый. Можно ли в Джава передать функцию в функцию?)...

3
2586 / 2259 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
13.10.2011, 22:35 2
сделай функцию обёртку, которая будет по параметру (например enum {TEXT, XLS, SOMETH}) вызывать нужную из 3 и более, по мере дописывания новых будешь апгрейдить enum и обёртку

Добавлено через 7 минут
5000 слов зависит от того как они у тебя лежат, если под каждое слово объект String то 5000 это много памяти, если в одном объекте то мало. по 5-20 это совсем мало, у меня на буке например вполне резво всё летает при 4000 стринг объектах, а на 14000 начинает захлёбываться, как минимально гарантированная скорость думаю покатит 1000 слово обьектов, а если ты их все складёшь в StringBuilder или в StringBuffer то 5000 это мелочь, билдер и буфер могут смело тянуть 100000
1
13 / 11 / 1
Регистрация: 02.11.2009
Сообщений: 194
13.10.2011, 23:08  [ТС] 3
спасибо за интересные цифры
0
2586 / 2259 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
14.10.2011, 00:00 4
сори за неумышленную дезу, техника всё круче, а предыдущие цифры уже устарели
знач так i5 460m RAM=3GB Linux 64bit

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.util.ArrayList;
import java.util.Vector;
 
public class StringCount {
 
    public static void main(String[] args) {
        String base = "reallysuperbigwordintheworld";
        int count = 500000;
        Vector<String> vs = new Vector<String>();
        ArrayList<String> as = new ArrayList<String>();
        long startMemoryUse = getMemoryUse();
        for (int i = 0; i < count; i++) {
            vs.add(new String().concat(base));
        }
        long endMemoryUse = getMemoryUse();
        System.out.println("Vector = " + Math.round((endMemoryUse - startMemoryUse)) + " bytes");
        System.gc();
        System.runFinalization();
        startMemoryUse = getMemoryUse();
        for (int i = 0; i < count; i++) {
            as.add(new String().concat(base));
        }
        endMemoryUse = getMemoryUse();
        System.out.println("ArrayList = " + Math.round((endMemoryUse - startMemoryUse)) + " bytes");
    }
 
    private static long getMemoryUse() {
        return (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory());
    }
}

Vector = 58507080 bytes
ArrayList = 56507472 bytes

Добавлено через 2 минуты
метод concat чтобы не давать переиспользовать статическую строку
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.10.2011, 00:00
Помогаю со студенческими работами здесь

Передача объекта методу в качестве параметра
Читаю учебник по Java, и видно, пропустил что-то, и теперь не могу понять, что за содомия...

Передача функции в качестве параметра
Может кто помочь объяснить следующую часть кода: double MyMethod(Func&lt;double, double&gt; f,...

Передача функции в качестве параметра
Как передать функцию с параметрами в transform? Т.е., например, мне надо из каждого числа вектора...

Передача функции в качестве параметра
Есть ф-я для отправки формы аяксом function ajaxFormRequest(form_id, url, dataT, some_func) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru