Hem Personliga finanser Arrayer i Java-kod - dummies

Arrayer i Java-kod - dummies

Video: Java Basics - Array Examples 2024

Video: Java Basics - Array Examples 2024
Anonim

Klassen ArrayList som används i många Android-appprogram är bara toppen av Java-samlingar isberg. Java-biblioteket innehåller många samlingskurser, alla med egna fördelar. Tabellen innehåller en förkortad lista.

Vissa samlingsklasser

Klassnamn Karaktäristisk
ArrayList En resizable array.
LinkedList En lista med värden, som alla har ett fält som pekar på nästa

ett i listan.

Stack En struktur (som växer från botten till toppen) som är optimerad

för tillgång till det högsta värdet. Du kan enkelt lägga till ett värde på

toppen eller ta bort det från toppen.

Queue En struktur (som växer i ena änden) som är optimerad för

lägger till värden i ena änden (bakåt) och tar bort värden från

andra änden (framsidan).

PriorityQueue En struktur, som en kö, som tillåter vissa (högre prioritet)

-värden att röra sig framåt.

HashSet En samling som inte innehåller några dubbla värden.
HashMap En samling av nyckel / värdepar.

Varje samlingsklass har sin egen uppsättning metoder (förutom de metoder som den ärver från Abstraktion, förfader till alla samlingsklasser).

En array är en särskild typ av samling som är optimerad för indexering. Det betyder att du enkelt och effektivt kan hitta det 100: e värdet som lagras i en array, det 1 000: e värdet lagrat i en array eller det 1 000 000-värde som lagras i en array.

Arrayen är en värdig, försökt och sant funktion av många programmeringsspråk, inklusive nya språk som Java och äldre språk som FORTRAN. Faktum är att arrayens historia går tillbaka så långt att de flesta språk (inklusive Java) har speciell notering för att hantera arrays. Listan illustrerar notationen för arrayer i ett enkelt Java-program.

paket com. allmycode. samlingar; public class SimpleCollectionsDemo {public static void main (String [] args) { String [] myArray = ny sträng [4]; myArray [0] = "Hej"; myArray [1] = ","; myArray [2] = "readers"; myArray [3] = "!"; för (inti = 0; i <4; i ++) { System. ut. trycket (myArray [i]); } System. ut. println (); för (Stringsträng: myArray) {System. ut. Skriv ut (sträng);}}}

Figuren visar resultatet av en körning av koden i noteringen. Både den vanliga för slingan och den förbättrade slingan visar samma utgång.

Kör koden i listan.

I noteringen använder den vanliga slingan index, med varje index markerat med kvadratfästen.Som det är med alla Java-samlingar är indexvärdet index 0, inte 1. Notera också nummer 4 i arrayens deklaration - det indikerar att "du kan lagra 4 värden i arrayen. "

Numret 4 betyder inte att" du kan tilldela ett värde till myArray [4]. "Faktum är att om du lägger till ett uttalande som myArray [4] =" Oj! "Till koden i listan, får du ett otäckt felmeddelande (ArrayIndexOutOfBoundsException) när du kör programmet.

Uttrycket String [] myArray = new String [4] skapar en tom array och gör att myArray-variabeln hänvisar till den tomma matrisen. Arrayet kan eventuellt lagra så många som fyra värden. Men i början hänvisar den variabel till en array som inte innehåller några värden. Det är inte förrän Java kör det första uppdragsberäkningen (myArray [0] = "Hello") att arrayen innehåller några värden.

Du kan enkelt och effektivt hitta det 100: e värdet lagrat i en array eller det 1 000 000-värde som lagras i en array. Inte illa för en dags arbete. Så vad är nackdelen med att använda en array? Den största nackdelen med en array är att varje array har en fast gräns för antalet värden som den kan hålla. När du skapar matrisen i listan, reserverar Java plats för så många som fyra strängvärden.

Om du senare bestämmer dig för att du vill lagra ett femte element i matrisen, behöver du lite klumpig, ineffektiv kod för att göra dig till ett större antal. Du kan också överskatta storleken du behöver för en array, som visas i det här exemplet:

String [] myArray = new String [20000000];

När du överskattar sparar du förmodligen mycket minneutrymme.

En annan obehaglig egenskap hos en array är svårigheten du kan ha vid att infoga nya värden. Tänk dig att ha en trälåda för varje år i din samling av Kejsare Konstantin Comics . Serien går tillbaka till år 307 A. D., då Konstantin blev chef för Romerriket.

Du har bara 1, 700 lådor eftersom du saknar ungefär sex år (oftast från åren 1150 till 1155). Lådorna är inte numrerade, men de staplas en bredvid varandra i en linje som är 200 meter lång. (Linjen är så länge som den 55: e våningen i en skyskrapa är lång.)

I en garageförsäljning i Istanbul hittar du en sällsynt utgåva av Kejsare Konstantinkomiker från och med mars 1152. Efter glädje över din första komiker från år 1152, inser du att du måste infoga en ny låda i högen mellan åren 1151 och 1153, vilket innebär att du flyttar år 2013-låsen ungefär tio centimeter till vänster och sedan flyttar 2012-rutan i stället för 2013-rutan, och sedan flytta 2011-rutan istället för 2012-rutan. Och så vidare.

Livet för den ivrige kejsaren Konstantin Comics samlaren håller på att bli tröttsam! Att sätta ett värde i mitten av ett stort array är lika irriterande.

Arrayer i Java-kod - dummies

Redaktörens val

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

När du utvecklar e-postmarknadsföring innehåll, överväga hur din publik kommer att uppleva dina avsikter. E-postmeddelanden ger större mening åt dina framtidsutsikter och kunder när innehållet du skapar och levererar är knutet samman under kända teman. När din tid är begränsad kan du bli frestad att skapa e-postinnehåll som passar ditt schema bättre ...

Nya formulärinmatningstyper i HTML5 - dummies

Nya formulärinmatningstyper i HTML5 - dummies

HTML-formulär är centrerade kring det ödmjuka men flexibla inmatningselementet . HTML5 lägger till ett antal väldigt användbara former av inmatning som hjälper till att göra HTML till ett mer modernt användargränssnitt. Även om stöd för dessa taggar inte är universellt är det säkert att börja använda dem nu. Varje webbläsare (även IE6) som inte förstår den avancerade ...

Utföra visuell designtest på en ny webbplats - dummies

Utföra visuell designtest på en ny webbplats - dummies

Det visuella designteamet för en webbplats kan skapa några olika "look and feel" -alternativ och testa dem med användare. Den här designen kallas perfekt för att passera en hemsida och en inre eller undersida av din webbplats, men de är inte 100 procent korrekta när det gäller ...

Redaktörens val

Objektiv till dina digitala SLR-dummies

Objektiv till dina digitala SLR-dummies

Zoomlinser är inte den enda typen av linser som är tillgängliga för din dSLR . Du borde veta hur de skiljer sig från de andra alternativen. Här är några av alternativen till zoomlinser i allmänhet och vanliga zoomlinser i synnerhet. Prime-objektiv En primärlins har en fast brännvidd. En lins med fast fokusering ...

Hur man skapar bra belysning för din digitala fotografi - dummies

Hur man skapar bra belysning för din digitala fotografi - dummies

Ja, du kan återskapa bra belysning om du vet vad du gör. Och ingenting kan förstöra ett foto snabbare än dålig belysning. Du kan göra många förbättringar till ett utmanande ämne helt enkelt genom att använda bra belysningsteknik. Din farbrors skalliga huvud, en tonåring som är mindre än perfekt, en hård upplyst strandplats, en droppe ...

ÖKa bildförstoring med telekonverterare - dummies

ÖKa bildförstoring med telekonverterare - dummies

En telekonverter är en sekundärlins som du placerar mellan din lins och kamerokroppen (precis som förlängningsröret). En telekonverter tar emot bilden som skapats av din lins och ger en förstorad version av den till kamerans digitala sensor. Detta kan vara ett användbart verktyg i makrofotografering men kan också vara ...

Redaktörens val

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Trådlösa arbetsstationer har massor av säkerhetsproblem och kan vara inriktade på hackar - från svaga lösenord till opatchade säkerhetshål till lagring av WEP- och WPA-krypteringsnycklar lokalt. De flesta av de kända trådlösa klientens sårbarheter har blivit patchade av sina respektive leverantörer, men du vet aldrig om alla dina trådlösa system är ...

Grundläggande Mac Network Settings - dummies

Grundläggande Mac Network Settings - dummies

De flesta nätverksinställningarna på en Mac är automatiska. Om du föredrar kan du titta på och ändra standardnätverksinställningarna genom att följa dessa steg: