Форум программистов, компьютерный форум, киберфорум
Наши страницы

Java SE (J2SE)

Войти
Регистрация
Восстановить пароль
 
Ванеек
67 / 67 / 2
Регистрация: 21.12.2012
Сообщений: 458
#1

Добавление в массив - Java SE

18.04.2013, 22:14. Просмотров 1266. Ответов 6
Метки нет (Все метки)

Привет,форумчане)
А подскажите,пожалуйста ,как избежать лесенки:
Java
1
2
3
4
[1
1,2
1,2,3
]
и еще:
Вот код:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
 
public class lcss {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
 
        String listl[] = new File(
                "C:\\apache-tomcat-6.0.36\\webapps\\wasks\\WEB-INF\\linksearchbase\\")
                .list(new FilenameFilter() {
                    public boolean accept(File dir, String namelink) {
                        return namelink.endsWith(".html");
                    }
                });
        
        List<String> pagelist = new ArrayList<String>();
        String myName = "Яндекс";
        BufferedReader brl = null;
 
        for (int l = 0; l < listl.length; l++) {
            String namelink = listl[l];
            namelink = namelink.substring(0, namelink.lastIndexOf(".html"));
            File filel = new File(
                    "C:\\apache-tomcat-6.0.36\\webapps\\wasks\\WEB-INF\\linksearchbase\\"
                            + listl[l]);
            try {
                brl = new BufferedReader(new InputStreamReader(
                        new FileInputStream(filel), "UTF-8"));
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
 
            for (String word : myName.split(" ")) {
 
                for (String linkname : namelink.split(" ")) {
 
                    if (word.equalsIgnoreCase(linkname)) {
 
                        String line;
 
                        try {
                            while ((line = brl.readLine()) != null) {
                                pagelist.add(line + "\n");
                                // System.out.println(pagelist.size());
                                int sizelic = pagelist.size();
                                System.out.println(sizelic);
 
                                for (int isc = 0; isc < 10; isc++) {
 
                                    System.out.println(pagelist);
 
                                }
 
                            }
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
 
                    }
 
                }
 
            }
            
        }
 
    }
 
}
Я в нем пытаюсь вывести 10 элементов из arraylista,но видимо выводятся десять копий всего листа))
Но если вывести
Java
1
while ((line = brl.readLine()) != null) {
просто line,то все нормально,что посоветует,как вывести 10 элементов?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2013, 22:14
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Добавление в массив (Java SE):

Добавление элемента в массив - Java SE
Прощу прощения за тупой вопрос, но все же. Есть класс Library. В нем я объявил массив объектов books. Далее нужно реализовать ф-ю,...

Добавление слов в массив - Java SE
Как лучше добавлять в массив слова из строки, если строка состоит из нескольких слов, пробелов, табуляций? Думал через ArrayList и...

Добавление символа в массив - Java SE
Привет, прошу помочь с проблемой, начал учить джаву и встал такой вопрос, а именно как добавить символ в массив символов. Есть код ...

Добавление элемента в массив - Java SE
есть такой код public class Student { private int id; private String firstName; private String lastName; private String...

Добавление в массив четные числа - Java SE
Задача,добавить в массив четные числа от 1 до 20 У меня добавляются в массив помимо нужно нули что не так?class massive { ...

Сравнение массивов и добавление новых элементов в массив - Java SE
Добрый день! На данный момент столкнулся с двумя задачами, возникли определенные трудности. 1) Необходимо сравнить два неравных...

6
Федя Форточкин
68 / 82 / 16
Регистрация: 09.12.2012
Сообщений: 222
Записей в блоге: 3
18.04.2013, 22:49 #2
Ванеек,
Java
1
pagelist.get(isc);
получает из ArrayList элемент стоящий на позиции isc
1
Ванеек
67 / 67 / 2
Регистрация: 21.12.2012
Сообщений: 458
19.04.2013, 18:10  [ТС] #3
Цитата Сообщение от Федя Форточкин Посмотреть сообщение
получает из ArrayList элемент стоящий на позиции isc
Спасибо,а как получить 10 элементов из листа?

Добавлено через 37 минут
Или может,мне получать десять элементов из String[] list,в цикле,а потом хоть в аррайлист,хоть куда,хоть на вывод,но меня волнует вопрос производительности,что быстрее взять String[] list вытащить десять элементов и вывести,или их еще и в аррай занести ,а потом вывести,если учитывать,что такая операция будет проводится постоянно

Добавлено через 13 минут
Или вот наоборот,все сделать в аррау ,а потом в String[] ,а там уже вывод десяти элементов,вот небольшой примерчик,но волнует вопрос быстроты сего алгоритма)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package WorkCyberForym;
 
import java.util.ArrayList;
 
public class Slist {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ArrayList<String> lista = new ArrayList<String>();
        lista.add("hello");
        lista.add("Ivan");
        lista.add("KyKy");
 
        String[] list = lista.toArray(new String[lista.size()]);
        System.out.println(list[1]);
 
    }
 
}
Добавлено через 2 часа 20 минут
Так как вот такой код выдает у меня :
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package WorkCyberForym;
 
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
 
public class Slist {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        String listl[] = new File(
                "C:\\apache-tomcat-6.0.36\\webapps\\wasks\\WEB-INF\\linksearchbase\\")
                .list(new FilenameFilter() {
                    public boolean accept(File dir, String namelink) {
                        return namelink.endsWith(".html");
                    }
                });
 
        String myName = "Яндекс";
        BufferedReader brl = null;
        ArrayList<String> lista = new ArrayList<String>();
 
        for (int l = 0; l < listl.length; l++) {
            String namelink = listl[l];
            namelink = namelink.substring(0, namelink.lastIndexOf(".html"));
            File filel = new File(
                    "C:\\apache-tomcat-6.0.36\\webapps\\wasks\\WEB-INF\\linksearchbase\\"
                            + listl[l]);
            try {
                brl = new BufferedReader(new InputStreamReader(
                        new FileInputStream(filel), "UTF-8"));
 
                for (String word : myName.split(" ")) {
 
                    if (word.equals(myName)) {
 
                        String line;
 
                        try {
                            while ((line = brl.readLine()) != null) {
                                lista.add(line + "\n");
                                String[] list = lista.toArray(new String[lista
                                        .size()]);
                                for (int isc = 0; isc < 10; isc++) {
 
                                    System.out.println(list[isc]);
 
                                }
 
                            }
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
 
                    }
 
                }
 
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
 
        }
 
        String[] list = lista.toArray(new String[lista.size()]);
        System.out.println(list[0]);
 
    }
 
}
одну строку из файла,а если сделать вывод не из переменной,а подставить лист 0,то будет выведено много-много первых строчек файлов ,как исправить?

Добавлено через 1 час 17 минут
еще ошибку выдает
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at WorkCyberForym.Slist.main(Slist.java:54)

на 54 строке
Java
1
System.out.println(list[isc]);
0
tankomaz
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
440 / 439 / 33
Регистрация: 14.10.2012
Сообщений: 1,147
Записей в блоге: 9
19.04.2013, 18:19 #4
Java
1
ArrayIndexOutOfBoundsException
выход за границы массива
1
Ванеек
67 / 67 / 2
Регистрация: 21.12.2012
Сообщений: 458
19.04.2013, 18:23  [ТС] #5
Вот String в массив,добавляет много строк,но я пытаюсь узнать размер массива мне пишет 1

Цитата Сообщение от tankomaz Посмотреть сообщение
выход за границы массива
Да это я понял уже
0
tankomaz
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
440 / 439 / 33
Регистрация: 14.10.2012
Сообщений: 1,147
Записей в блоге: 9
19.04.2013, 18:26 #6
Java
1
2
3
4
5
                               for (int isc = 0; isc < 10; isc++) {
 
                                    System.out.println(list[isc]);
 
                                }
это как вы так уверенно написали меньше 10 тойсь вы гарантируете что элементов в list всегда больше?
1
Ванеек
67 / 67 / 2
Регистрация: 21.12.2012
Сообщений: 458
20.04.2013, 16:46  [ТС] #7
Цитата Сообщение от tankomaz Посмотреть сообщение
это как вы так уверенно написали меньше 10 тойсь вы гарантируете что элементов в list всегда больше?
их больше,в том-то и дело,что list.size выводит один элемент,но у меня там содержимое 20 файлов,может это потому,что стринг(содержащий все строки 20 файлов),когда в массив добавляется он же один,вот и выводит один,и ,если вывести первый элемент выводит 1 строку,а вот как это исправить?

Добавлено через 3 часа 20 минут
Может саму строку line,куда-нибудь добавить

Добавлено через 19 минут
Мне кажется это вообще нерешаемая задача,хотя,кто ее знает

Добавлено через 22 минуты
Вот получилось почти:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FilenameFilter;
import java.io.InputStreamReader;
import java.util.ArrayList;
 
public class listtest {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        ArrayList<String> sizel = new ArrayList<String>();
        sizel = pagef();
 
        String[] ListS = sizel.toArray(new String[sizel.size()]);
        int spacerIndex = 0;
 
        for (int i = 0; i < 31; i++) {
            if (spacerIndex++ % 3 == 0) {
                System.out.println("<div class hop>");
            }
            System.out.println(ListS[i]);
            if (spacerIndex % 3 == 0) {
                System.out.println("</div>");
            }
        }
 
    }
 
    static ArrayList<String> pagef() {
        ArrayList<String> page = new ArrayList<String>();
        BufferedReader br = null;
        String s = null;
 
        String listl[] = new File("C:\\test\\")// apache-tomcat-6.0.36\\webapps\\wasks\\WEB-INF\\linksearchbase
                .list(new FilenameFilter() {
                    public boolean accept(File dir, String namelink) {
                        return namelink.endsWith(".txt");
                    }
                });
        try {
 
            for (int i = 0; i < listl.length; i++) {
                String namelink = listl[i];
                namelink = namelink.substring(0, namelink.lastIndexOf(".html"));
 
                File fileread = new File("C:\\test\\" + listl[i]);
                br = new BufferedReader(new InputStreamReader(
                        new FileInputStream(fileread), "UTF-8"));
                while ((s = br.readLine()) != null) {
                    page.add(s);
                }
                br.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
 
        return page;
 
    }
}
Добавлено через 4 минуты
Java
1
2
3
4
5
6
 if (spacerIndex++ % 3 == 0) {
                System.out.println("<div class hop>");
            }
            System.out.println(ListS[i]);
            if (spacerIndex % 3 == 0) {
                System.out.println("</div>");
но есть проблемы,вывод сначала идет нормальный:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<div class hop>
<div></div>
<div></div>
<div></div>
</div>
<div class hop>
<div></div>
<div></div>
<div></div>
</div>
<div class hop>
<div></div>
<div></div>
<div></div>
</div>
...так шесть штук такиx и вдруг,на седьмом блоке:
<div class hop>
//откуда этот пробел взялся,подскажите пожалуйста)
<div></div>
<div></div>
</div>
<div class hop>
<div></div>
и все сбилось,главное нормально шло и какие-то пробелы

Добавлено через 36 минут
Главное еще в каждом файле по три строки (сделал вывод 30 строк),а выводятся 27 строк

Добавлено через 16 часов 41 минуту
Ну так как ,что за пробелы, и как их убрать?

Добавлено через 7 минут
Даже если я дивов с класами не ставлю у меня после пяти блоков:
<a></a>
<div></div>
<a></a>
<a></a>//2
<div></div>
<a></a>
<a></a>//3
<div></div>
<a></a>
<a></a>//6
<div></div>
<a></a>
<a></a>//7
<div></div>
<a></a>
Вот тут пробелы странные
<a></a>//8
<div></div>
<a></a>
Может ли это быть из-за файлов,я просто часть файлов скопировал в туже директорию,и как ни странно именно содержимое этих файлов,у меня с пробелами,что думаете?

Добавлено через 30 минут
Мне кажется дело еще в кодировке,может можно как-то сделать тут utf-8,а вот в нотепаде есть utf без BOM,можно такое сделать чтение в коде?
0
20.04.2013, 16:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2013, 16:46
Привет! Вот еще темы с ответами:

Массив: Добавление N элементов в массив - C#
Здравствуйте, помогите решить задание, в лабораторной ------- создать метод void AddArticles (params Article) для добавления элементов в ...

Добавление в массив - Pascal
Добавление в массив произвольного (заданного) числа элементов. Как это реализовать? Заранее спасибо. :)

Добавление в массив - C#
Здравствуйте. Помогите пожалуйста, имеется массив пользовательского типа данных как в него добавить элементы? public class Region ...

Добавление в массив - Delphi
Здраствуйте, есть процедура которая должна добавлять элементы в конкретный массив,но она почему то добавляет только в последний из...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru