Just nu i M3-nätverket
Gå till innehåll

int och string i java


simkort

Rekommendera Poster

Hur fungerar int och String i exemplen nedan.

 

int [] [] [] x = new int[3][4][5]; observera hakparenteserna efter int är samma antal som efter new int

 

String []b={"A","B","C"};

Länk till kommentar
Dela på andra webbplatser

Som vanligt har jag svårt att förstå din fråga men jag gissar och

int [] [] [] x = new int[3][4][5];

skapar en tredimensionell matris bestående av heltal medan

String []b={"A","B","C"}; 

skapar en vektor som består av tre strängar som vardera innehåller en bokstav. Om det var något annat du undrade får du förtydliga din fråga.

 

Mer kött på benen om matriser: http://mathbits.com/mathbits/Java/arrays/Matrices.htm

Länk till kommentar
Dela på andra webbplatser

Det blev man ju inte klokare av, tänkte att det skulle vara exempel

på utskrifter av respektive exempel.

När jag skriver ut blir det hexadecimal som inte säger något,

och som ökar för varje knapptryck.

Länk till kommentar
Dela på andra webbplatser

Precis som Cecilia skriver har du i det första fallet skapat en tredimensionell matris, att du får konstiga resultat beror väl på att du inte har lagt in några värden i den, till exempel satsen: x [0] [0] [0] = 99; lägger in värdet 99 i första dimensionens första dimensions första dimension. Satsen x [0] [1] [2] = 38; lägger in värdet 38 i första dimensionens andra dimensions tredje dimension. Du har totalt 60 element i den där vektorn, 3 x 4 x 5 = 60.

 

Ditt andra exempel skapar en endimensionell strängvektor med tre element, med värdena A, B, C i respektive element.

Länk till kommentar
Dela på andra webbplatser

Okej, så du ville veta veta hur man gör utskrifter av vektorer och matriser. Då är det ju bra att fråga om det och inte vad int och String är för något. Sidan jag länkade till har utskrifter i två exempel. Fler exempel:

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

http://www.roseindia.net/java/beginners/MatrixExample.shtml

Länk till kommentar
Dela på andra webbplatser

Alltså en kub med sidan 3

 

int [] [] [] x = new int[3][3][3];

 

x [0] [0] [0] = 99;

 

System.out.println(x[0] [0] [0]);

 

Men hur tänker man sig en sådan figur som den här(nedan).

hur ser den ut.

 

int [] [] [] [] [] [] x = new int[6][6][6][6][6][6];;

 

och hur matar man in tal på ett smidit sätt

mannuellt blir väl inte så kul,

Länk till kommentar
Dela på andra webbplatser

Vi människor lever i en tredimensionell värld och har väldigt svårt att tänka oss hur något ser ut som har fler dimensioner än tre. När något har fyra dimensioner kan man tänka sig en kub som ser olika ut vid olika tidpunkter.

 

Det är väl aldrig roligt att skriva in många värden, oavsett om de ska placeras i en enda lång vektor eller i en fler-dimensionell matris. Om vi lämnar övningarnas värld och går över till mer vanliga datorprogram som kan tänkas hantera fler-dimensionella matriser, kan det ju t ex vara en spelmotor som hanterar objekt som man kan vrida och vända på på skärmen, och ett sådant program får ju normalt sitt data om objektet genom att man filmar/skannar objektet från olika håll.

Länk till kommentar
Dela på andra webbplatser

Men hur tänker man sig en sådan figur som den här(nedan).

hur ser den ut.

 

int [] [] [] [] [] [] x = new int[6][6][6][6][6][6];;

 

Här är ett litet program med 6 dimensioner och 2 element i varje, totalt 64 element alltså (2x2x2x2x2x2).

 

import java.util.*;

class Matris{    
public static void main(String[] args) {	

int a = 10;
int[][][][][][] matris = new int[2][2][2][2][2][2];	

for (int i=0; i<matris.length; i++) {
	for (int j=0; j<matris[i].length; j++) { 
	  for (int k=0; k<matris[i].length; k++) {
		   for (int l=0; l<matris[i].length; l++) {
			for (int m=0; m<matris[i].length; m++) {
				for (int n=0; n<matris[i].length; n++) {
	            matris[i][j][k][l][m][n] = a++;
	            System.out.print(" " + matris[i][j][k][l][m][n]);     
 		      }
System.out.println("");
		      }
		   } 
	   }
   }
  } 
  }			
}

 

och resultatet blir:

 

Microsoft Windows [Version 6.1.7601]

Copyright © 2009 Microsoft Corporation. Med ensamrätt.

 

C:\Users\Internet>cd documents\java

 

C:\Users\Internet\Documents\Java>javac Matris.java

 

C:\Users\Internet\Documents\Java>Java Matris

10 11

12 13

14 15

16 17

18 19

20 21

22 23

24 25

26 27

28 29

30 31

32 33

34 35

36 37

38 39

40 41

42 43

44 45

46 47

48 49

50 51

52 53

54 55

56 57

58 59

60 61

62 63

64 65

66 67

68 69

70 71

72 73

 

C:\Users\Internet\Documents\Java>

Länk till kommentar
Dela på andra webbplatser

Jalek jag tittade liite på din kod med en matris med 6 dimensioner.

 

Det verkar inte vara som du tror, i den hyfsade koden nedan fär

 

du exakt samma resultat med två dimensioner a 2

 

nu tycker jag att du tar reda på vad som är vad.

 

int a = 10; 
       int[] [] matris = new int [2][2] ;      

       for (int i=0; i<matris.length; i++) { 
               for (int j=0; j<matris[i].length; j++) {  
                 for (int k=0; k<matris[i].length; k++) { 
                         for (int l=0; l<matris[i].length; l++) { 
                              for (int m=0; m<matris[i].length; m++) { 
                                     for (int n=0; n<matris[i].length; n++) { 
                          matris[i][j] = a++; 
                           System.out.print(" " + matris[i][j]);      
                             } 
       System.out.println(""); 
                             } 
                         }  
                 } 
         } 
 }  

Länk till kommentar
Dela på andra webbplatser

Det enklaste visuella sättet att representera flerdimensionella variabler är via träd:

Ex. 4 dimensioner

 

A
AA
  AAA
     AAAA
     AAAB
  AAB
     AABA
     AABB
AB
  ABA
    ABAA
    ABAB
B
BA

 

osv.

 

Vet inte om det gjorde det mer begripligt?

Länk till kommentar
Dela på andra webbplatser

simkort, du har helt rätt, det blir samma resultat med 2 dimensioner, det var smart att upptäcka det! Programmet är lite feltänkt, som Anjuna Moon säjer är det enklare att visa flera dimensioner som träd. Flera dimensioner i Java är ju egentligen arrayer i arrayer, och fler än 2 används nog rätt sällan.

 

Här är ett lite enklare program som skriver ut en figur i 10 rader och 5 kolumner, att det blir nollor beror på att arrayen initieras till det. Går givetvis att göra på andra sätt också.

 

import java.util.*;

class Rektangel{
public static void main(String[] args) {	
       int [][] rektangel = new int [10][5];

	for (int rad=0; rad<rektangel.length; rad++) {
		for (int kol=0; kol<rektangel[rad].length; kol++) {
		System.out.print(" " + rektangel[rad][kol]);
		}
		System.out.println("");
	}
}
}

Länk till kommentar
Dela på andra webbplatser

  • 1 month later...

Råkade få syn på den här lite äldre tråden och här är ett nytt försök att beskriva flera dimensioner i Java. Progammet lägger in bokstäverna A - Z i en fyrdimensionell matris med två element i dom tre första dimensionerna och tre eller fyra i den fjärde. Dimensionerna i Java är bara arrayer i arrayer så man kan ha olika antal element i arrayerna.

 

public class FyraDArray {
public static void main(String[] args) {
char arr4[][][][] = 
{ { { { 'A', 'B', 'C' },{ 'D', 'E', 'F' } },
   { { 'G', 'H', 'I' },{ 'J', 'K', 'L' } } },
 { { { 'M', 'N', 'O' },{ 'P', 'Q', 'R' } },
   { { 'S', 'T', 'U', 'V' },{ 'W', 'X', 'Y', 'Z' } } }, }; 
//	 
//  Utskrift av enstaka element i arrayen
//
System.out.println("I arr4[0][0][0][0] finns ett " + arr4[0][0][0][0]);
System.out.println("I arr4[0][1][1][2] finns ett " + arr4[0][1][1][2]);
System.out.println("I arr4[1][1][1][3] finns ett " + arr4[1][1][1][3]);
System.out.println();
//
//  Utskrift av alla element i en rad
//
System.out.print("Alla element: ");
for (char x [][][] : arr4) {
	for (char y [][]: x) {
	   for (char z [] : y) {
	   System.out.print(z);
	   }
	}
}
System.out.println();
System.out.println();
//
//  Utskrift av alla element i en tabell	
//
  for (char x [][][] : arr4) {
	for (char y [][] : x) {
	   for (char z [] : y) {
	   System.out.print(z); 
	   }
	   System.out.println(); 
	}
  }
}
}       		

 

Utskrifterna blir:

 

I arr4[0][0][0][0] finns ett A
I arr4[0][1][1][2] finns ett L
I arr4[1][1][1][3] finns ett Z

Alla element: ABCDEFGHIJKLMNOPQRSTUVWXYZ

ABCDEF
GHIJKL
MNOPQR
STUVWXYZ   		

 

Som ett träd:

 

1:a dim.   2:a dim.   3:e dim.   4:e dim. Värde
-------    -------    -------    --------------
.          
Index 0    Index 0    Index 0    Index 0, A
                                "     1, B
                                "     2, C
.       
                     Index 1    Index 0, D
                                "     1, E
                                "     2, F
.        
          Index 1    Index 0    Index 0, G
                                "     1, H
                                "     2, I
.
                     Index 1    Index 0, J
                                "     1, K
                                "     2, L
.
Index 1    Index 0    Index 0    Index 0, M
                                "     1, N
                                "     2, O
.
                     Index 1    Index 0, P
                                "     1, Q
                                "     2, R
.
          Index 1    Index 0    Index 0, S
                                "     1, T
                                "     2, U
                                "     3, V
.
                     Index 1    Index 0, W
                                "     1, X
                                "     2, Y
                                "     3, Z  

 

Och nåt sånt här kan man ju göra enklare med en endimensionell matris med 26 element, fler dimensioner än två är rätt meningslöst i Java och används nog mycket sällan.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...