CodeGym
Aktion
CodeGym University
Lernen
Kurs
Aufgaben
Umfragen & Quizze
Spiele
Hilfe
Zeitplan für einen Tritt in den Hintern
Community
Benutzer
Forum
Chat
Artikel
Erfolgsstorys
Aktivität
Rezensionen
Abonnements
Helles Design
Frage
  • Rezensionen
  • Über uns
Start
Jetzt lernen
Jetzt lernen
  • Alle Fragen
hidden #10625598
Level 23
  • 23.06.2020
  • 206Aufrufe
  • 4Kommentare

wie wird das sortiert, wenn nicht so?

Frage zur Aufgabe Bytes sortieren
Java Core,  Level 8,  Lektion 3
In der Diskussion


Gib einen Dateinamen über die Konsole ein.
Lies alle Bytes aus der Datei.
Sortiere sie nach Byte-Code in aufsteigender Reihenfolge und ignoriere dabei Wiederholungen.
Zeige das Ergebnis auf dem Bildschirm an.
Schließe den EA-Datenstrom.

Beispiel für Bytes in der Eingabedatei:
44 83 44

Beispiel-Ausgabe:
44 83

Anforderungen:
  • Das Programm muss einen Dateinamen von der Konsole lesen.
  • Verwende einen FileInputStream, um aus der Datei zu lesen.
  • Das Programm muss alle eindeutigen Bytes in der Datei in aufsteigender Reihenfolge, durch Leerzeichen getrennt, anzeigen.
  • Die Bildschirmausgabe muss in einer Zeile angezeigt werden.
  • Der zum Lesen der Datei verwendete Stream muss geschlossen werden.
package de.codegym.task.task18.task1805; import java.io.*; import java.util.*; /* Bytes sortieren */ public class Solution { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); FileInputStream inStream = new FileInputStream(reader.readLine()); ArrayList<Integer> list = new ArrayList<>(); while(inStream.available() > 0){ int data = inStream.read(); list.add(data); } Collections.sort(list); // , Collections.reverseOrder() for(int i = 0; i < list.size(); i++){ System.out.print(list.get(i) + " "); } inStream.close(); } }
0
Kommentare (4)
  • Beliebt
  • Neu
  • Alt
Du musst angemeldet sein, um einen Kommentar schreiben zu können
Thomas
Level 33 , Bayreuth, Germany
23 Juni 2020, 13:47
Bevor du zur Liste hinzufügst solltest du prüfen, ob das Byte schon in der List ist. Ansonsten hast du pro Byte mehrere Einträge. Anstatt einer List könntest du auch etwas anderes nehmen.
+1
hidden #10625598
Level 23
23 Juni 2020, 14:31
okay, ich habe es jetzt mit einem HashSet geschafft, aber wie wäre deine idee, zu prüfen ob es schon in der liste ist? wie würde das gehen, mir fällt da gerade gar nichts ein?
0
Thomas
Level 33 , Bayreuth, Germany
23 Juni 2020, 16:50
set.contains() und google mal TreeSet. Für die andere Aufgabe kannst du auch gleich nach TreeMap suchen... nur mal so als kleiner Hinweis ;) dann musst du nicht selbst herausfinden, daß man ein HashSet nicht sortieren kann.
0
hidden #10625598
Level 23
23 Juni 2020, 17:14
wolla okay, mache ich. ja ich weiss :) aber man kann beim hashset nicht doppelt speichern (das war glaube ich das problem?), ich habe das set zur liste gewechselt und dann mit collections geordnet :)
0
Lernen
  • Registrierung
  • Java-Kurs
  • Hilfe zu Aufgaben
  • Preise
  • Spieleprojekte
  • Java Syntax
Community
  • Benutzer
  • Artikel
  • Forum
  • Chat
  • Erfolgsstorys
  • Aktivität
  • Affiliate Program
Unternehmen
  • Über uns
  • Kontakt
  • Rezensionen
  • Medien
  • CodeGym im Bildungsbereich
  • FAQ
  • Support
CodeGym CodeGym ist ein Java-Tutorial zum Lernen von Java von Grund auf. Dieser Kurs ist perfekt dafür geeignet, Java von Beginn an zu meistern. Er enthält über 1200 Aufgaben mit Sofortüberprüfung und grundlegende Theorie zu den Java-Grundlagen. Damit auch du bei deinem Kurs erfolgreich bist, haben wir eine ganze Reihe motivierender Inhalte: Quizfragen, Programmierprojekte, Inhalte zu effizientem Lernen und zum Berufseinstieg als Java-Entwickler.
Folgen
Sprache der Oberfläche
Programmierer werden gemacht, nicht geboren © 2023 CodeGym
MastercardVisa
Programmierer werden gemacht, nicht geboren © 2023 CodeGym
This website uses cookies to provide you with personalized service. By using this website, you agree to our use of cookies. If you require more details, please read our Terms and Policy.