collections

Auflistungs-APIs stellen Entwicklern eine Reihe von Klassen und Schnittstellen zur Verfügung, mit denen die Sammlung von Objekten vereinfacht wird.
7
Antworten

Konvertieren von Elementen einer Liste in eine Zeichenfolge

Ich möchte den String-Text der Elemente erhalten, die in einer Liste gespeichert sind, sagen wir List<Car> . Wären die Methoden toArray () und toString () die besten Optionen?     
23.01.2010, 19:06
3
Antworten

Java - Mixed ArrayLists?

Ist es möglich, eine Mischung von Objekttypen in einer ArrayList zu speichern? Wenn ja wie? Das habe ich bisher versucht: %Vor% Aber es wirft eine Casting-Ausnahme. Vielen Dank im Voraus für eine Eingabe!     
10.06.2011, 00:11
2
Antworten

Meteor mit einer lokalen Verbindung führt zu einem Fehler: Einfügen fehlgeschlagen: 404 - Methode nicht gefunden

Ich habe eine Meteor-Sammlung auf der Client-Seite %Vor% Ich habe einen Benutzer, der sich mit Facebook authentifiziert und ich möchte eine Liste seiner Freunde abrufen: %Vor% Ich habe eine Funktion, um diese Liste zu bekommen: %Vor%...
07.05.2012, 13:40
2
Antworten

Entferne max (oder min) aus der Sammlung mithilfe der Java8-Streaming-API

Ich habe wenig Probleme mit Code-Design, die neue Streaming-API von Java 8 verwenden. Ich möchte neue Dinge lernen und eine der Aufgaben ist: Max und Min von der Liste ablehnen. Liste enthält keine Duplikate. Sieht einfach aus? Nein ... Me...
07.04.2014, 11:25
3
Antworten

Unterschied zwischen list.map und list.collect

Was ist der Unterschied zwischen map und collect? Dokumentation unten - ich kann den Unterschied nicht sagen .. List.map & lt; 'T', U & gt; Funktion Erstellt eine neue Sammlung, deren Elemente die Ergebnisse der Anwendung der gegebenen Fu...
14.09.2013, 11:01
6
Antworten

___ qstntxt ___

Ich bin Anfänger in Java und erstelle gerade ein Kartenspiel wie Gin Rommé für Android. Ich möchte wissen, was die beste Implementierung für die Erstellung der Handklasse ist? Wie kann man die von Deck.dealt () zurückgegebene Karte am besten speichern?

  1. Array
  2. ArrayList
  3. Vektor
  4. HashSet
  5. VerknüpfteListe

Außerdem würde ich mich freuen, wenn jemand einen Gin Rommé Open-Source-Link zur Verfügung stellen könnte.

    
___ answer9128558 ___

Ich denke, eine gute Idee wäre, eine Schnittstelle zu verwenden (Liste, wenn Elemente geordnet sind, oder Setzen, wenn Elemente nicht geordnet sind. Sie können die gewünschte Implementierung verwenden, zum Beispiel:

%Vor%

oder

%Vor%     
___ answer9128716 ___

Speichern Sie sie in %code% .

Karten in einer Hand sind in einer bestimmten Reihenfolge, nicht in einem ungeordneten Haufen. Diese Reihenfolge wird in %code% über %code% beibehalten.

%code% gibt Ihnen auch die Möglichkeit, eine bestimmte Karte nach Index auszuwählen, was bei der Implementierung des Spiels hilfreich ist.

Beachten Sie, dass Sie diese Datenstruktur jederzeit problemlos ändern können, solange Sie Ihre %code% -Klasse ordnungsgemäß erstellen. Solange Sie dies bei jeder von Ihnen entworfenen Klasse berücksichtigen, können Sie sie jederzeit ändern, wenn Sie merken, dass Sie etwas anderes brauchen.

    
___ answer9128718 ___

Nun, ein %code% ist schneller (soweit ich weiß), aber wenn du ein Kartenspiel machen willst, dann wirst du vielleicht die Karten sortieren wollen. Deshalb würde ich vorschlagen, eine Liste zu verwenden. Wenn Sie ein Anfänger sind, dann wäre vielleicht das Beste, ein %code% zu verwenden. Es ist einfach zu bedienen und zu verstehen. Zumindest würde ich das tun. Wenn Sie mehr erfahren möchten, empfehle ich, über die einzigartigen Eigenschaften jedes einzelnen zu lesen, damit Sie selbst entscheiden können. Und ja, wie Greuze schon sagte, sollten Sie eine Schnittstelle für mehr Flexibilität verwenden.

    
___ answer9128842 ___

Erstens wird von der Verwendung von Vector in den neuesten Versionen von Java abgeraten, so dass Sie diese wahrscheinlich ignorieren können.

Zweitens, wie Sie wissen werden, wenn Sie das Javadoc auf diesen restlichen Klassen lesen, haben sie alle Vorteile oder Nachteile. Manche haben eine Bestellung, manche können doppelte Werte annehmen, manche nicht und so weiter. Daher denke ich, der beste Ansatz ist es, einen Pseudo-Code für Ihre Anwendung zu schreiben, der nicht auf einer bestimmten Klasse basiert (schreiben Sie einfach Dinge wie "Karte zu Hand hinzufügen", "Karte aus der Hand entfernen"). Sobald Sie etwas von diesem Pseudo-Code haben, werden Sie in der Lage sein, Ihre Anforderungen klarer zu sehen; Wollen Sie die Karten in einer bestimmten Reihenfolge in der Hand behalten? Willst du Karten mit einem Schlüssel aus der Hand holen?

Dann wird Ihre Wahl klarer sein.

    
___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ answer9131074 ___

Es ist sinnvoll, das Deck in einer Liste zu behalten, da es die Reihenfolge aufrechterhält. Ich verwende standardmäßig Lists.newArrayList (), um eine Liste zu erstellen. Listen ist ein Teil von Guava. Ich empfehle sehr, Guava zu verwenden und kennen zu lernen, da es viele nützliche Angebote hat.

Es wäre sinnvoll, die Hand in einer leicht sortierbaren Datenstruktur zu halten, um den Vergleich der Hände zu erleichtern. OTOH, IIRC, Gin Rummy Hände sind nicht allzu groß.

    
___ tag123arrays ___ Ein Array ist eine geordnete Datenstruktur, die aus einer Sammlung von Elementen (Werten oder Variablen) besteht, die jeweils durch einen oder mehrere Indizes identifiziert werden. Wenn Sie nach bestimmten Varianten von Arrays fragen, verwenden Sie stattdessen diese verwandten Tags: [Vektor], [Arraylist], [Matrix]. Wenn Sie dieses Tag verwenden, markieren Sie die Frage auch mit der verwendeten Programmiersprache, es sei denn, Ihre Frage bezieht sich nicht auf eine bestimmte Programmiersprache. ___ tag123collections ___ Auflistungs-APIs stellen Entwicklern eine Reihe von Klassen und Schnittstellen zur Verfügung, die die Verarbeitung von Objektgruppen vereinfachen. ___ tag123datastrukturen ___ Eine Datenstruktur ist eine Möglichkeit, Daten so zu organisieren, dass bestimmte Eigenschaften dieser Daten effizient abgefragt und / oder aktualisiert werden können. ___ answer9130840 ___

Wenn Sie die Nuancen zwischen den Sammlungsarten wirklich verstehen wollen, gehen Sie hier.

%code% ist technisch nicht angemessen, außer wenn das Spiel Bohnanza ist (was, ähm, ist einer der größte Kartenspiele aller Zeiten, aber ich lasse mich fertig machen).

%code% sagt unter anderem, dass eine Hand, die das Ass und den König der Vereine enthält, und eine andere Hand, die den König und das Kreuz enthält, grundsätzlich nicht dieselbe Hand sind. Das ist eine viel stärkere Abhängigkeit von der Ordnung als einfach "Nun, ich möchte mich an die Reihenfolge erinnern, in der der Benutzer seine Karten sehen möchte", was eine Eigenschaft ist, die Tonnen von Nicht-Listen-Sammlungen haben, wie %code% und Guavas %code% .

%code% impliziert auch, dass der Karte im Index N eine besondere Bedeutung beigemessen wird. Dies gilt für kein Kartenspiel, das ich kenne.

%code% ist im Allgemeinen nicht für Kartenspiele geeignet - nur für diejenigen, die ein einziges Kartenspiel mit völlig einzigartigen Karten verwenden.

Um Duplikate zu erlauben, aber trotzdem eine gruppenunabhängige Gleichheit zu haben, ist der zu verwendende Typ Guavas %code% . Zum Beispiel %code% oder %code% . Beachten Sie, dass die meisten Multiset-Implementierungen mehrere "gleiche" Karten darstellen, indem Sie nur die Karte und eine Zählung speichern. Wenn Sie über sie iterieren, müssen Duplikate einer Karte, die Sie auf der Hand haben, immer zusammen erscheinen. Wenn es wichtig ist, dass der Benutzer die Reihenfolge der Karten in seiner Hand frei steuern kann, benötigen Sie %code% .

Jetzt ist die Unterrichtszeit vorbei ... nun, seien wir ehrlich. % Co_de% aufzurufen, oder eine ganze Hand als Schlüssel in %code% zu verwenden, ist nicht wirklich was du jemals tun wirst ... also mach weiter und benutze %code% , du Mir geht es gut. : -)

    
___

Ich bin Anfänger in Java und erstelle gerade ein Kartenspiel wie Gin Rommé für Android. Ich möchte wissen, was die beste Implementierung für die Erstellung der Handklasse ist? Wie kann man die von Deck.dealt () zurückgegebene Karte am besten spe...
03.02.2012, 12:12
5
Antworten

Warum Java-gleichzeitige Sammlungen wirklich Thread-sicher sind

Ich habe mir den Code von Java-Concurrent-Collections angeschaut und sehe, dass sie einfach Sammlungen umschließen, indem sie am Anfang der Operation ein Schloss sperren und es am Ende aufschließen. Was ist mit volatile ? Wenn die Back-End-...
23.11.2010, 18:19
3
Antworten

Zähler im Modul Sammlungen Python

Ich bin auf ein wirklich seltsames Problem gestoßen. Ich versuche, Counter-Funktion im Sammlungsmodul zu verwenden. Ich bekomme jedoch immer die gleiche Fehlermeldung %Vor% Ich habe versucht, es vorher zu verwenden, und es hat gut funktionie...
09.11.2012, 15:38
5
Antworten

Gibt es eine Möglichkeit, gemeinsame Elemente in mehreren Listen zu finden?

Ich habe eine Liste von Integer-Arrays. Ich muss die gemeinsamen Elemente zwischen diesen finden. Was ich mir vorstellen kann, ist eine Erweiterung dessen, was in Gemeinsame Elemente in zwei Listen %Vor% Es gibt auch keine Duplikate in...
03.03.2013, 08:44
4
Antworten

Wie verwende ich Lodash, um zwei Sammlungen basierend auf einem Schlüssel zusammenzuführen?

Ich habe zwei Sammlungen und die Objekte haben einen gemeinsamen Schlüssel "userId". Wie unten: %Vor% Ich möchte sie basierend auf "userId" zusammenführen, um Folgendes zu erzeugen: %Vor% Ich habe diese bisher: %Vor% Welches Ergebnis...
29.01.2016, 18:55