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

Ошибка в работе класса при создании нового объекта

06.05.2015, 14:37. Показов 1080. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Есть код класса при котором всё работает прекрассно когда один экземпляр, а когда создается второй то выдает IndexOutOfBoundsException. Вот код, здесь вычисляется кросс-корреляционная функция

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
86
87
public class Data {
 
    LinkedList <Double> X, Y, cloneX, cloneY;
    private LinkedList <Double> dataLeft = new LinkedList();
    private LinkedList <Double> dataRight = new LinkedList();
    private int size;
    Data(LinkedList <Double> X, LinkedList<Double> Y) {
        this.X = X;
        cloneX = (LinkedList)X.clone();
        cloneY = (LinkedList)Y.clone();
        this.Y = Y;
        this.size = X.size();
    }
 
    public double getPearsonCorrelation(LinkedList<Double> X, LinkedList<Double> Y) {
     
        double result = 0;
 
        double sum_sq_x = 0;
 
        double sum_sq_y = 0;
 
        double sum_coproduct = 0;
        
        double mean_x = X.get(0);
 
        double mean_y = Y.get(0);
 
        for (int i = 2; i < X.size() +1; i += 1) {
 
            double sweep = Double.valueOf(i - 1) / i;
 
            double delta_x = X.get(i - 1) - mean_x;
 
            double delta_y = Y.get(i - 1) - mean_y;
 
            sum_sq_x += delta_x * delta_x * sweep;
 
            sum_sq_y += delta_y * delta_y * sweep;
 
            sum_coproduct += delta_x * delta_y * sweep;
 
            mean_x += delta_x / i;
 
            mean_y += delta_y / i;
 
        }
 
        double pop_sd_x = (double) Math.sqrt(sum_sq_x / X.size());
 
        double pop_sd_y = (double) Math.sqrt(sum_sq_y / Y.size());
 
        double cov_x_y = sum_coproduct / X.size();
 
        result = cov_x_y / (pop_sd_x * pop_sd_y);
 
        return result;
 
    }
 
    public void  crossCorrelationData() {
        for (int i = 0; i < size; i++) {
             
            if (Math.abs(getPearsonCorrelation(X,Y))==1) continue;
            
            dataLeft.add(Math.abs(getPearsonCorrelation(X,Y)));
            X.removeFirst();
            Y.removeLast();
           
            if (Math.abs(getPearsonCorrelation(cloneX,cloneY))==1) continue;
           dataRight.add(Math.abs(getPearsonCorrelation(cloneY,cloneX)));
         
           cloneY.removeFirst();
           cloneX.removeLast();
 
        }
    }
    
    
    public LinkedList<Double> getDataRight() {
        return dataRight;
    }
    public LinkedList<Double> getDataLeft() {
        return dataLeft;
    }
 
}
При создании
Java Скопировано
1
2
Data d = new Data (sd,compress);
         d.crossCorrelationData();
Всё прекрассно, правильные значения и т.д
А вот когда сделать
Java Скопировано
1
2
3
4
Data d = new Data (sd,compress);
         d.crossCorrelationData();
         Data d1 = new Data (sd,fdim);
         d1.crossCorrelationData();
Для первого объекта выполняется, а дальше получается ошибка. Помогите пожалуйста
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.05.2015, 14:37
Ответы с готовыми решениями:

При создании нового объекта класса NullPointerException
Добрый день. Есть два класса // содержит индексы для таблицы public class Slot { private int _row; private int...

Использование объекта одного класса при создании нового класса
Добрый вечер. У меня такая проблема. Есть готовый класс L2 - список, на его основе нужно создать дек. Я поступил так: в приватной части...

Ошибка при создании нового документа: Поле объекта не обнаружено (srcElement)
Здравствуйте. Создаю программно новый документ ЭлектронноеПисьмо. Нужно передать текст письма, который заполняется в элементе формы...

4
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
06.05.2015, 14:44
fdim
что это и где где оно инициализируется?
0
0 / 0 / 0
Регистрация: 06.05.2015
Сообщений: 4
06.05.2015, 14:47  [ТС]
fdim взят с бд аналогично sd и compress. Там везде одинаково элементов, только разные значения.
Типа так:
Java Скопировано
1
LinkedList<Double> fdim = mydb.setToCollection("Fractal_dimension");
Просто коллекция с числами

Добавлю, что когда убрать первый объект, то соответственно второй работает нормально
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
06.05.2015, 14:51
текст ошибки бы весь увидеть
0
0 / 0 / 0
Регистрация: 06.05.2015
Сообщений: 4
06.05.2015, 14:56  [ТС]
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.LinkedList.checkElementIndex(L inkedList.java:553)
at java.util.LinkedList.get(LinkedList.java :474)
at cursov.Data.getPearsonCorrelation(Data.j ava:48)
at cursov.Data.crossCorrelationData(Data.ja va:84)
at cursov.Cursov.main(Cursov.java:37)
48
Java Скопировано
1
double delta_y = Y.get(i - 1) - mean_y;
84
Java Скопировано
1
dataRight.add(Math.abs(getPearsonCorrelation(cloneY,cloneX)));
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.05.2015, 14:56
Помогаю со студенческими работами здесь

Выскакивает ошибка при создании нового класса формы
Товарищи программисты! Начал писать на C++ Qt при создании класса формы выскакивает ошибка (см. скрин) Что делать? Создавал все по уроку...

Ошибка при создании объекта класса
Привет! Чтобы на протяжении всего поста было понятно о чём я говорю,в конце поста прикреплю код. Так вот, при создании объекта класса...

Ошибка при создании объекта класса
Есть класс, создаю объект, выходит ошибка &quot;cannot allocate an object of abstract type 'Cat'&quot; Что делать? cat.h: #ifndef CAT_H ...

Ошибка при создании объекта класса
Приветствую, форумчане! Возник вопрос при создании объекта класса String. Что самое интересное, когда пишу ту же прогу без параметров в...

Ошибка при создании объекта класса
Здравствуйте. В коде ниже при попытке вывести код на экран возникает следующая ошибка: prog.cpp: In function 'int main()': ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров.
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров. 3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
Система статов в Unity
GameUnited 20.04.2025
Статы — фундаментальный элемент игрового дизайна, который определяет характеристики персонажей, предметов и других объектов в игровом мире. Будь то показатель силы в RPG, скорость передвижения в. . .
Статические свойства и методы в TypeScript
run.dev 20.04.2025
TypeScript прочно занял своё место в системе современной веб-разработки. Этот строго типизированный язык программирования не просто расширяет возможности JavaScript — он делает разработку более. . .
Batch Transform и Batch Gizmo Drawing API в Unity
GameUnited 20.04.2025
В мире разработки игр и приложений на Unity производительность всегда была критическим фактором успеха. Создатели игр постоянно балансируют между визуальной привлекательностью и плавностью работы. . .
Звук в Unity: Рандомизация с Audio Random Container
GameUnited 20.04.2025
В современных играх звуковое оформление часто становится элементом, который либо полностью погружает игрока в виртуальный мир, либо разрушает атмосферу за считанные минуты. Представьте: вы исследуете. . .
Максимальная производительность C#: Советы, тестирование и заключение
stackOverflow 20.04.2025
Погружение в мир микрооптимизаций C# открывает перед разработчиком целый арсенал мощных техник. Но как определить, где и когда их применять? Ответ начинается с точных измерений и профилирования. . . .
Максимальная производительность C#: Предсказание ветвлений
stackOverflow 20.04.2025
Третий ключевой аспект низкоуровневой оптимизации — предсказание ветвлений. Эта тема менее известна среди разработчиков, но её влияние на производительность может быть колоссальным. Чтобы понять. . .
Максимальная производительность C#: Векторизация (SIMD)
stackOverflow 20.04.2025
Помимо работы с кэшем, другим ключевым аспектом низкоуровневой оптимизации является векторизация вычислений. SIMD (Single Instruction, Multiple Data) позволяет обрабатывать несколько элементов данных. . .
Максимальная производительность C#: Процессорный кэш
stackOverflow 20.04.2025
Знакомство с внутренним устройством процессорного кэша — ключевой шаг в написании по-настоящему быстрого кода на C#. Этот слой архитектуры компьютера часто ускользает от внимания разработчиков, но. . .
Максимальная производительность C#: Введение в микрооптимизации
stackOverflow 20.04.2025
В мире разработки на C# многие привыкли полагаться на . NET Runtime, который "магическим образом" сам оптимизирует код. И часто это работает - современные JIT-компиляторы творят чудеса. Но когда речь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер