Возможно ли иметь массив, содержащий как массивы, так и примитивы в Java? - PullRequest
1 голос
/ 12 декабря 2011

Я делаю проект на Java, в котором я смотрю на то, как часто встречаются символы после каждого другого символа в тексте. Когда я собираю свои результаты, я сохраняю их в двумерном массиве int с. Однако в той же таблице результатов я хочу сохранить некоторые результаты обо всем этом.

Возможно ли иметь массив, в котором некоторые элементы являются массивами, а другие - примитивами?

Ответы [ 4 ]

3 голосов
/ 12 декабря 2011

Да, вы можете иметь Object[] и хранить микс типов, хотя это должна быть оболочка Integer (не примитив int). (Примечание: вы можете «обмануть» и сохранить каждый int в виде одноэлементного массива int[], что делает его объектом, но «не пытайтесь делать это дома»)

Но даже если бы вы могли, массив не является правильным подходом. Вместо этого создайте для этого класс.

Попробуйте что-то вроде этого:

public class FrequencyAnalysis {
    private int[] frequencies;
    private String info;
    private Date lastRun;
    // etc
}
1 голос
/ 12 декабря 2011

Нет, это не работает.В одном массиве могут быть только объекты ИЛИ примитивы.Все остальное - просто обходной путь.

0 голосов
/ 12 декабря 2011

Вы можете использовать упакованные типы, т.е. java.lang.Integer (поэтому тип вашего массива должен быть Object []), но лучше сделать новый класс для результатов. Storage

0 голосов
/ 12 декабря 2011

В этом случае вам придется хранить Object s (примитивы будут автоматически блокировать классы Wrapper), а затем, когда вы будете читать записи, вам нужно будет instanceof Object и затем безопасно их разыграть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...