Java превращает два массива в один двумерный массив

У меня есть две массивы с одинаковой длиной в моей программе, курсах курса и курсах курса, которые выглядят примерно так:

courseGrades [] = { A , A , B , A , C , A }; 
courseCredits [] = { 1 , 2 , 1 , 3 , 2 , 1 }; prettypr A ABACA
 1 2 1 3 2 1 ed ">                             Pair

Я хочу объединить их в один двумерный массив, который будет отображаться следующим образом:

public class Pair<K, V> {
    public K key;
    public V value;

    public Pair() {}

    public Pair(K key, V value) {
        this.key = key;
        this.value = value;
    }
}

Как мне это сделать на Java? Кроме того, как бы вы ссылались на каждый элемент в этом массиве? Извините за очень простой вопрос, я все еще новичок в java.

java,arrays,loops,multidimensional-array,

0

Ответов: 3


2 принят

Вы можете создать Pairsкласс, например:

Pair<char, int> result[] = new Pair<char, int>[keys.length];

for (int i = 0; i < keys.length; i++) {
    result[i] = new Pair<char, int>(keys[i], values[i]);
}

И затем вы создаете массив int. Я некоторое время не работал в Java, поэтому я мог бы сделать некоторые опечатки здесь, но это идея:

Object[][]

1

Кажется, вы хотите объединить массив String [] grades = { "A" , "B" , "C" }; Integer [] credits = { 1 , 2 , 3 }; Объект [] [] gradesAndCredits = { оценки , кредиты }; for ( int i = 0 ; i < gradesAndCredits . length ; i ++) { for ( int j = 0 ; j < gradesAndCredits [ i ]. length ; j ++) { System . из . print ( gradesAndCredits [ i ] [ j ] + "" ); } Система . из . println (); } s с массивом s в 2D-массив. int

В Java двумерные массивы могут хранить только один вид вещей, поэтому нет безопасного для этой цели способа. Тип-небезопасный способ сделать это будет хранить их в String:

Integer

Если вы хотите, чтобы элементы в подмассивах были такими же, как Strings и HashMaps, вам нужно было их отбросить, что является небезопасным по типу.

В качестве альтернативы вы можете сохранить эти пары в a, если имеет смысл, если один из них будет действовать как «ключ», а другой - «значение».String[] grades = {"A", "B", "C"}; Integer[] credits = {1, 2, 3}; HashMap<String, Integer> map = new HashMap<>(); for (int i = 0 ; i < grades.length ; i++) { map.put(grades[i], credits[i]); }

int

0

Оказывается, можно назначить ссылки, но только если массив не является массивом примитивов, как intиdouble

String[] letterGrades = { "A", "B", "C" };
int[] numberGrades = { 1, 2, 3 };
Object[][] combined = new Object[2][];
combined[0] = letterGrades;
combined[1] = numberGrades;  // error here

Поэтому вместо этого int[]вам придется использовать Integer[]или скопировать элементы в новый массив.

Java, массивы, циклы, многомерно-массив,
Похожие вопросы