A grafikon ábrázolása a szomszédsági listákban a java-ban
ArrayList
Az a tény, hogy a Java objektumok nem csak egy osztály, hanem osztályok közül, a megfelelő paraméterekkel történő hívás módszerek és hozzárendelés nem ellenőrzött, csak néha a fordító dob warning'i arról, amit nem tudom, mi ez az objektum lehetőséget. Létrehozhat egy ArrayList-et
Valami amit nem vettem észre, és ettől elveszett a figyelmeztetés: "Megjegyzés: Main.java nem ellenőrzött vagy nem biztonságos műveleteket használ". Vagy inkább fenn kell maradnia, és a kijelentések, hogy a Java jobb, mint plusz, garantálja a végrehajtás biztonságát, meg kell osztani a 0x100-at?
Teljes szöveg -
[Cut]
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Queue;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Fő statikus int nextInt (StreamTokenizer in) próbálja meg in.nextToken ();
return (int) in.nval;
> fogás (IOException ex) Logger.getLogger (Main.class.getName ()) .log (Level.SEVERE, null, ex);
visszatérés 0;
>
>
public static void main (String [] args) dob FileNotFoundException StreamTokenizer in = új StreamTokenizer (új FileReader ( "INPUT.TXT"));
PrintWriter out = új PrintWriter (új fájl ("output.txt"));
int TEST_NUM = nextInt (be);
az (int the_test = 0; the_test
az (int i = 0; i
az (int k = 0; k
>
int [] st = új int [N];
int [] d = új int [N];
Arrays.fill (st, 0);
Arrays.fill (d, 987654321);
int start = nextInt (be);
st [start] = 1;
d [start] = 0;
sorban áll
qqq.add (start);
míg (! qqq.isEmpty ()) int u = qqq.poll ();
a (int w. (ArrayList
ha (st [w] == 0) qqq.add (w);
st [w] = 1;
d [w] = d [u] +1;
>
>
az (int i = 0; i
out.println ();
>
out.close ();
>
>
ArrayList
@SuppressWarnings ("nem engedélyezett")
ArrayList
Már így is ez a figyelmeztetés gyűlölködik
Ne csináld újra, használj valamit, mint ideone vagy paste.pocoo.org
Először is, generikusan gyakran vannak nem biztonságos öntvények, és figyelmeztetés - és nem juthat el bárhova. Másodszor, a Java 7-ben a fordító ezeket az eseteket biztonságosnak kezeli, és nem ír semmit. Harmadszor, a biztonság akkor jelentkezik, amikor a program nem tartozik a rossz művelethez, de kivételt hoz létre, amelyet elkapnak és feldolgoznak. Hasonlóképpen megkérheted, hogy tesztelheted a 0 osztással vagy az Integer x = (Integer) obj típusú hozzárendelésekkel való megosztást.
"a biztonság akkor jelentkezik, ha a program nem tartozik a rossz akcióba, de kivételt hoz létre, amelyet elkapnak és feldolgoznak"
Hol helytelenül bánom, ha figyelembe vesszük, hogy a fordító egyáltalán nem helyezi el a helytelen cselekvést, még biztonságosabb?
Általában megváltoztathatja a fordítót. Ezért minden akadályt teljesen kijátszhat, ha letiltja az ellenőrzéseket a JVM szintjén.
A leírások leírása
ArrayList
-- Nagyon köszönöm, úgy tűnik, ez 99% -os kérdés.
És az üzenet többi részéről - valami rosszul íródott, vagy nem jól olvastam, de először teljesen nem értettem. Különösen megzavarta az állítás: "ArrayList-t hozhat létre
Ahhoz, hogy azokat össze lehessen rendelni, ezt a Raw Type konverzióval kell végrehajtania:
lista
listI.add (7);
Lista lista = lista;
lista
listS.add ("Java");
System.out.println (listS);
A fordítás során nem lesz hiba, de figyelmeztetés jelenik meg a -XLint: jelöléssel
Ez a régebbi verziókkal való kompatibilitás (az 5. Java előtt) történik.
Én általában a pluses vektorra írtam> de valahogy nemrég hallottam ezt a vektort
Azonban az ArrayList vagy a LinkedList egyáltalán nem befolyásolja a fő kérdés lényegét.
Mi nem felel meg az ArrayList tömbnek?
Egy műveletet könnyebb végrehajtani egy grafikonnal.
Ami a performansz az azonos, de általában a szomszédsági lista egy potenciális előny, hogy a szomszédos, a tetejére a bordák következetesen ellenzi egy nagy lista, ahol nincs ilyen sorrendben.
Ha az élek teljes eltávolításra szorulnak, akkor hasonlóan készíthet egy sor HashSet'ov-ot, ha a teljesítmény nem túl fontos.
Érdekes kérdés az, hogyan lehet gyors szerkezetet hozni az élek / csúcsok hozzáadásához / eltávolításához.