Как хранить «несколько частей информации» элемента в Java

Мне нужна структура данных, которая позволит мне хранить как минимум 2 части данных для каждого элемента. Я хочу, чтобы элементы хранились в том порядке, в котором они были вставлены.

Пример:

Insert (xyz, string) ... insert (789, number)
System.out.println( dataStruct );

will print out (xyz, string) then (789,number)

Если возможно, пожалуйста, покажите несколько примеров кодов. Спасибо!

2
nl ja de
Могу ли я хотя бы знать, почему я получаю голоса?
добавлено автор Dino55, источник
@Ars - Спасибо. Я действительно просто прошу о предложениях .. так как я только начал изучать Java. И я уже дал всю информацию, которую знаю.
добавлено автор Dino55, источник
@nfechner - Спасибо. Сначала я попробовал Google, тогда я подумал, что лучше всего просто попросить людей основываться на их опыте. Ну что ж. Спасибо, что отформатировал его.
добавлено автор Dino55, источник
Я не спускал вниз, но: ваш вопрос не очень легко понять, исходное форматирование было ужасным, и простой запрос Google мог бы дать вам ответ. Вероятно, вы должны прочитать Как спросить и Что вы пробовали , если хотите улучшить свои вопросы.
добавлено автор nfechner, источник
Учтите, что если вы ищете пары ключ-значение, как в HashTable , каждый ключ будет иметь одно значение. Пожалуйста, дополните.
добавлено автор Ars, источник

4 ответы

You can use a Hashtable or a List

Пример:

Hashtable hTable=new Hashtable();
//adding or set items in Hashtable by put method key and value pair
hTable.put(new Integer(2), "Two");
hTable.put(new Integer(1), "One");
hTable.put(new Integer(4), "Four");
hTable.put(new Integer(3), "Three");
hTable.put(new Integer(5), "Five");

Взгляните на некоторые структуры Java .

РЕДАКТИРОВАТЬ

In order to keep the insertion order one can use a LinkedHashSet or LinkedHashMap

1
добавлено
@MeNoMore - Спасибо! но мне действительно нужна структура данных упорядочивания First in First .. Я думаю, я мог бы добавить третью часть данных, например, счетчик, чтобы помочь сортировать его? Это хорошая идея?
добавлено автор Dino55, источник
Спасибо, изменил его на Hashtable.
добавлено автор CloudyMarble, источник
@lbalazscs правильно, LinkedHashSet делает это тоже. Я пишу это в ответе.
добавлено автор CloudyMarble, источник
@ Dino55 В этом случае взгляните на java.util.LinkedList. В общем, вам следует изучить коллекции java.util. Это основные классы полезности, которые используются в большинстве нетривиальных приложений Java.
добавлено автор Patricia Shanahan, источник
Словарь отмечен как устаревший. См. здесь
добавлено автор nfechner, источник
Hashtable синхронизируется. У вас обычно есть веская причина для его использования. В противном случае простой HashMap будет быстрее.
добавлено автор nfechner, источник
LinkedHashMap поддерживает порядок вставки
добавлено автор lbalazscs, источник

Код ниже может быть вашей структурой данных:

 List list;

    class Item {
     public String desc;
     public Integer val;
     void insert(String desc,Integer val){
     this.desc = desc;
     this.val = val; 
     }   
     void insert(Integer val,String desc){
     insert(desc,val);
     }
    }
1
добавлено
Я думал использовать что-то вроде структуры C, поэтому этот Java-код выглядит немного странным для меня. Итак, вы создаете класс класса ?
добавлено автор Dino55, источник
Спасибо! Я буду исследовать структуру данных этого списка :)
добавлено автор Dino55, источник
да, список , и независимо от строки, int или int, строка заполняет элемент.
добавлено автор TheWhiteRabbit, источник
public class Store {
String str1;
String str2;

public Store(String string1, String string2) {
    str1 = string1;
    str2 = string2;
}

public static void main(String[] args) {

    Store[] s = new Store[10];//size
    for (int i = 0; i < s.length; i++) {
        s[i] = new Store("A", "B");
        System.out.println(s[i].str1);
        System.out.println(s[i].str2);

    }

}
}

Я думаю, что это то, что вы ищете. Это C-подобная структура. Попробуй это. Это поможет вам вставить более двух частей данных для каждого элемента, просто сделав небольшие изменения. И порядок тоже будет сохранен.

1
добавлено
Спасибо! Мне потребовалось некоторое время, но я наконец вижу связь этого кода между C и Java! Благодаря! И я использовал ArrayList <класс> просто немного: P
добавлено автор Dino55, источник

Это как-то заполнит это требование, вы также можете использовать параметры типа в конструкторах HashMap.

HashMap map= new HashMap();
List virtualDs= new ArrayList();
0
добавлено
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async