Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 06.01.2019
Сообщений: 52

Копия массива

30.09.2019, 23:59. Показов 1426. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет. Не могу разобраться с одной задачкой. Ввожу массив из файла построчно. Хочу сделать его копию для дальнейшей работы. Попробовал написать функцию, но что-то как-то все криво косо,ничего не выводит, в общем . Помогите пожалуйста. Заранее спасибо

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
import javax.swing.*;
import java.io.*;
import java.util.*;
 
public class Main {
 
    static int[] A = new int[200];
    static Scanner scnA;
    openfile();
    readfileA();
    public static void main(String args[]) throws FileNotFoundException {
        int[] support = null;
        support = copyArray(A);
        System.out.println(support);
 
    }
 
    private static void readfileA() {
        while (scnA.hasNext()) {
            for (int i = 0; i < A.length; i++) {
                A[i] = Integer.parseInt(scnA.next());
            }
        }
    }
 
    private static void openfile() {
        try {
            scnA = new Scanner(new File("inA.txt"));
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "error");
        }
    }
 
    static int[] copyArray(int[] arraySource){ //функция копирования
        return arraySource.clone();
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.09.2019, 23:59
Ответы с готовыми решениями:

Глубокая копия объекта
Подскажите как реализовать глубокое копирование, к примеру кошки у которой есть параметр - вес. Знаю что есть два способа такого...

Копия рабочего стола
Здравствуйте! Подскажите, пожалуйста, как сделать копию рабочего стола в Java?

Копия массива
Здравствуйте! Такой вопрос. Например создаем массив: function Determ(){ var n = window.prompt(&quot;Введите матрицу X на Х&quot;,...

11
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
01.10.2019, 00:25
TrueJegor, можно вот так сделать:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class ArrFromFile {
    public static void main(String args[]) {
        List<String> sl = new ArrayList<>();                // создаем List
        sl = load("test.txt");                              // запускаем наш метод load()
        String[] array = sl.toArray(new String[sl.size()]); // создаем массив из коллекции
        System.out.println(Arrays.toString(array));         // выводим массив на печать
    }
 
    // Метод построчной загрузки строк из файла в List
    public static List<String> load(String fileName) {
        List<String> stringList = new ArrayList<>();
        try (Scanner in = new Scanner(new File(fileName))) {
            while (in.hasNextLine()) {
                stringList.add(in.nextLine());
            }
        }
        catch(IOException exc) {
            System.out.println("Ошибка ввода-вывода: " + exc);
        }
        return stringList;
    }
}
1
0 / 0 / 0
Регистрация: 06.01.2019
Сообщений: 52
01.10.2019, 00:41  [ТС]
alicesmagic, спасибо большое. А можно это попроще как-нибудь сделать? Через clone() допустим?
0
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
01.10.2019, 01:57
TrueJegor, смотрите, в методе используется коллекция (ArrayList) на тот случай, если неизвестно сколько будет строк в файле. Сколько их будет, такой размер и получится у коллекции. Потом коллекция преобразуется в массив.
Метод clone() тут никак не поможет. Ну, это на мой взгляд. Завтра соберутся профи и подскажут, может быть, другое решение.
Я лишь могу предложить, мудреное преобразование коллекции в массив засунуть внутрь самого метода. Чтобы на выходе получался сразу массив. Это я могу сделать.

Добавлено через 15 минут
Вот вариант, где метод возвращает сразу массив:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static void main(String args[]) {
    String[] arr = load("test.txt");
}
 
// Метод построчной загрузки из файла в массив
public static String[] load(String fileName) {
    List<String> stringList = new ArrayList<>();
    try (Scanner in = new Scanner(new File(fileName))) {
        while (in.hasNextLine()) {
            stringList.add(in.nextLine());
        }
    }
    catch(IOException exc) {
        System.out.println(exc);
    }
    String[] array = stringList.toArray(new String[stringList.size()]);
    return array;
}
В таком виде нет никаких заморочек с получением массива из коллекции в методе main. Этот вариант, безусловно, лучше)))

Добавлено через 43 минуты
Если нужно получить из файла целочисленный массив, то вот этот вариант запишет все, что можно в массив, а остальные строки проигнорирует:

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public static void main(String args[]) {
    Integer[] arr = load("test.txt");
}
 
// Метод построчной загрузки целых чисел из файла в массив
public static Integer[] load(String fileName) {
    List<Integer> intList = new ArrayList<>();
    try (Scanner in = new Scanner(new File(fileName))) {
        while (in.hasNextLine()) {
            try {
                intList.add(Integer.parseInt(in.nextLine()));
            } catch (NumberFormatException exc) {}
        }
    }
    catch(IOException exc) {
        System.out.println(exc);
    }
    Integer[] array = intList.toArray(new Integer[intList.size()]);
    return array;
}
Файл "test.txt"
Code
1
2
3
4
5
6
7
8
9
10
47
85
98 fsdfa
25
68
sdfgs asdfg
85
98
25
68
Массив на выходе:
Code
1
[47, 85, 25, 68, 85, 98, 25, 68]
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
01.10.2019, 05:45
TrueJegor, вызывай openfile и readfile в теле метода main
0
 Аватар для Aviz__
2739 / 2048 / 507
Регистрация: 17.02.2014
Сообщений: 9,467
01.10.2019, 08:30
alicesmagic, тут, к сожалению, все сложнее. это тот редкий случай, когда ТС-у нельзя помочь, пока он сам чегонить не вкурит((. это часть валынки отсюда Запись в файл наш добрый Gungala, порекомендовал ему записывать массив в файл, в формате
Цитата Сообщение от alicesmagic Посмотреть сообщение
[47, 85, 25, 68, 85, 98, 25, 68]
со скобками...
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
01.10.2019, 08:43
Aviz__, я ему ничего не рекомендовал. У него в коде массив выводился таким образом, но не туда. Я исправил вывод, но не выводимые данные, ибо понятия не имею, что нужно ТС
0
 Аватар для Aviz__
2739 / 2048 / 507
Регистрация: 17.02.2014
Сообщений: 9,467
01.10.2019, 08:50
Цитата Сообщение от Gungala Посмотреть сообщение
ибо понятия не имею, что нужно ТС
ну, Бро, не нужно кривить душой! из того кода понятно, что нужно прочесть данные из файлов в массивы, отсортировать массивы (вообще не понятно, почему именно обычный массив) и записать обратно в файлы.
0
01.10.2019, 09:14

Не по теме:

Aviz__, за кого вы с этой дамой меня принимаете? Какие у вас основания считать, что я лгу? Просто непостижимая наглость

Мне неважно, что там понятно. Я открыл тему, увидел это

Цитата Сообщение от TrueJegor Посмотреть сообщение
Мне нужно записать в три разных файла
и это
Цитата Сообщение от TrueJegor Посмотреть сообщение
Java
1
System.out.println(Arrays.toString(array));
Затем написал, как можно вывести в файл. Всё

Называть человека "Бро", а потом макать его лицом в грязь. Просто потрясающе

0
 Аватар для Aviz__
2739 / 2048 / 507
Регистрация: 17.02.2014
Сообщений: 9,467
01.10.2019, 10:28

Не по теме:

Цитата Сообщение от Gungala Посмотреть сообщение
Мне неважно, что там понятно
в этом то и проблема((. где сказано, что бойся нед*** (точки заменишь сам, как ты чувствуешь).
Цитата Сообщение от Gungala Посмотреть сообщение
непостижимая
ты сам знаешь что, прочесть простой код и сделать вид, что не понял...
ну и возьми себя в руки, деды не истерят на весь мир!



Добавлено через 56 минут
TrueJegor, вот, без обычных массивов
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
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
 
public class Helper {
 
    public static void main(String args[]) {
        List<Integer> integerList = getListFromFile("input.txt", ", ");
        Collections.sort(integerList);
        writeListToFile(integerList, "output.txt");
    }
 
    static List<Integer> getListFromFile(String fileName, String delimiter) {
        List<Integer> intList = new ArrayList<>();
        try (Scanner in = new Scanner(new File(fileName))) {
            while (in.hasNextLine()) {
                Scanner parser = new Scanner(in.nextLine()).useDelimiter(delimiter);
                while (parser.hasNextInt())
                    intList.add(parser.nextInt());
            }
        }
        catch(IOException exc) {
            System.out.println("Ошибка ввода-вывода: " + exc);
        }
        return intList;
    }
 
    static void writeListToFile(List<Integer> integerList, String fileName) {
        try {
            try(Writer fileWriter = new FileWriter(fileName) ){
                fileWriter.write(integerList.toString()
                        .replace('[',' ')
                        .replace(']',' ').trim());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
содержание "input.txt" и
Кликните здесь для просмотра всего текста

"input.txt" - 47, 85, 25, 68, 85, 98, 25, 68
"output.txt" - 25, 25, 47, 68, 68, 85, 85, 98
как и подсказывал наш добрый друг))
0
01.10.2019, 15:31

Не по теме:

Цитата Сообщение от Gungala Посмотреть сообщение
за кого вы с этой дамой меня принимаете?
Вряд ли у нас с Avizом одинаковые взгляды на ваш счет. А лично я принимаю вас за неглупого, ординарного, крайне эгоцентричного молодого человека с дефицитом чувства юмора и такта.
Я бы не стала излагать свою точку зрения на вашу персону, т.к. не считаю, что она может кого-то здесь интересовать. Но вы задали вопрос...

0
 Аватар для Aviz__
2739 / 2048 / 507
Регистрация: 17.02.2014
Сообщений: 9,467
01.10.2019, 16:34

Не по теме:

Цитата Сообщение от alicesmagic Посмотреть сообщение
Но вы задали вопрос..
Тонко

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.10.2019, 16:34
Помогаю со студенческими работами здесь

Копия массива(Функция)
int* copy(int* a) { int mass = {}; for(int i = 0; i &lt;= sizeof(a); i++) { mass = a; std::cout &lt;&lt; mass &lt;&lt; &quot; \n&quot;; // почему...

Копия двумерного динамического массива
Как создать копию двумерного динамического массива? Имеется двумерный динамический массив. Нужно создать его копию. Добавлено...

Копия многомерного массива с индексом строка
Есть многомерный массив $masiv, создаю копию $masivcopy = $masiv. Не работает $masivcopy. Естественно в массиве $masiv есть $masiv. ...

Как передавать массив по ссылке, чтобы не работала копия массива?
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int Min (int a,const int size); int _tmain(int argc, _TCHAR* argv) ...

Копия БД
Есть база на сервере. Надо, чтобы каждые два дня делалась копия БД. Что для этого необходимо. Настроить реплику, написать агента? ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru