Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto
Amazon porta i colori sul suo Kindle da scrittura più grande: schermo Colorsoft a 11 pollici, processore quad-core, penna premium più reattiva e strumenti IA per le note, sono le note salienti. Il salto di prezzo rispetto al modello in bianco e nero si fa sentire, anche se la percezione è quella di trovarsi di fronte a un prodotto di fascia altissima, per veri appassionati
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
Abbiamo intervistato Sumit Dhawan, CEO di Proofpoint, per capire come stia cambiando il mondo della sicurezza con l'avvento dell'intelligenza artificiale e con il ritmo sempre più serrato a cui vengono trovate vulnerabilità nel software. Un problema significativo, che richiederà del tempo per essere risolto (o quantomeno arginato)
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-12-2002, 16:20   #1
octopus_71
Member
 
Iscritto dal: Jun 2001
Città: Cagliari
Messaggi: 48
array in java

ciao a tutti,

sapete se è possibile inizializzare solo parte di un array in java? cioé: dichiaro un array con di 1000 interi ed inizializzo esplicitamente solo i primi 100, un pò come si fa in C con l'istruzione: int array[1000] = {1,2,3,4,...,100}

grazie

ciao
octopus_71 è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2002, 16:46   #2
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
No...il numero di elementi si può mettere solo creando una nuova istanza.

int[] array = new int[1000];

int[1000] array non è accettato dal compilatore...
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2002, 16:52   #3
octopus_71
Member
 
Iscritto dal: Jun 2001
Città: Cagliari
Messaggi: 48
tnx ma, a parte la sintassi, probabilmente mi sono espresso male.

la domanda è: una volta creato un array di 1000 elementi, posso con la sintassi {elem0, elem1,....elem99} (o in qualsiasi altro modo che non sia un ciclo o un assegnamento diretto - tipo a[0] = elem0; ecc) settare solo i primi 100?
octopus_71 è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2002, 17:12   #4
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
No...e se hai voglia di leggere questo ti spiega il perchè...

Arrays in Java
Virtually all programming languages support arrays. Using arrays
in C and C++ is perilous because those arrays are only blocks of
memory. If a program accesses the array outside of its memory
block or uses the memory before initialization (common
programming errors) there will be unpredictable results.2
One of the primary goals of Java is safety, so many of the problems
that plague programmers in C and C++ are not repeated in Java. A
Java array is guaranteed to be initialized and cannot be accessed
outside of its range. The range checking comes at the price of having
a small amount of memory overhead on each array as well as
verifying the index at run time, but the assumption is that the safety
and increased productivity is worth the expense.
When you create an array of objects, you are really creating an array
of handles, and each of those handles is automatically initialized to
a special value with its own keyword: null. When Java sees null, it
recognizes that the handle in question isn’t pointing to an object.
You must assign an object to each handle before you use it, and if
you try to use a handle that’s still null, the problem will be reported
at run-time. Thus, typical array errors are prevented in Java.
You can also create an array of primitives. Again, the compiler
guarantees initialization because it zeroes the memory for that
array.
Arrays will be covered in detail in later chapters.
2 In C++ you should often use the safer containers in the Standard Template Library as an
alternative to arrays.
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2002, 17:20   #5
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
E comunque lecita una dichiarazione del tipo_

int[] array ={1,2,3,4}...in memoria viene creato un array di 4 celle...


Per creare array dinamici devi usare la classe Array

public final class Array
extends Object
The Array class provides static methods to dynamically create and access Java arrays.

Array permits widening conversions to occur during a get or set operation, but throws an IllegalArgumentException if a narrowing conversion would occur.
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2002, 21:23   #6
Mazza2
Senior Member
 
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 559
Quote:
Originariamente inviato da cn73
[b]E comunque lecita una dichiarazione del tipo_

int[] array ={1,2,3,4}...in memoria viene creato un array di 4 celle...


Per creare array dinamici devi usare la classe Array

public final class Array
extends Object
The Array class provides static methods to dynamically create and access Java arrays.

Array permits widening conversions to occur during a get or set operation, but throws an IllegalArgumentException if a narrowing conversion would occur.
potrebbe usare i Vector che sono ancora meglio.
Mazza2 è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2002, 22:55   #7
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Se è per questo potrebbe anche crearsi una classe apposita...parlavamo di array...
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2002, 09:19   #8
Mazza2
Senior Member
 
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 559
Quote:
Originariamente inviato da cn73
[b]Se è per questo potrebbe anche crearsi una classe apposita...parlavamo di array...
si ho capito pero' se c'e' qualcosa di meglio..
Mazza2 è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2002, 10:21   #9
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Quote:
Originariamente inviato da Mazza2
[b]

si ho capito pero' se c'e' qualcosa di meglio..
C'è sempre qualcosa di meglio... A ciascuno il suo...non ci sono + le mezze stagioni
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2002, 12:30   #10
octopus_71
Member
 
Iscritto dal: Jun 2001
Città: Cagliari
Messaggi: 48
grazie amici

mi sono intestardito ad utilizzare gli array perchè volevo fare un confronto fra un programma che ho scritto in C ed uno scritto in java in termini di velocità di esecuzione. lo so che non c'è storia, però volevo sperimentarlo, utilizzando le stesse strutture dati in entrambi i linguaggi. Conosco bene la classe Vector ma l'utilizzo è mooolto + pesante per la VM ed il confronto sarebbe non sarebbe stato ad armi pari.

grazie a tutti
octopus_71 è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2002, 20:17   #11
Mazza2
Senior Member
 
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 559
Quote:
Originariamente inviato da cn73
[b]C'è sempre qualcosa di meglio... A ciascuno il suo...non ci sono + le mezze stagioni

si stava meglio quando si stava peggio
Mazza2 è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2002, 08:39   #12
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Il C è meglio del Java
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2002, 11:07   #13
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da octopus_71
[b]mi sono intestardito ad utilizzare gli array perchè volevo fare un confronto fra un programma che ho scritto in C ed uno scritto in java in termini di velocità di esecuzione. lo so che non c'è storia, però volevo sperimentarlo, utilizzando le stesse strutture dati in entrambi i linguaggi. Conosco bene la classe Vector ma l'utilizzo è mooolto + pesante per la VM ed il confronto sarebbe non sarebbe stato ad armi pari.
Con il C non credo ci sia storia... Magari sarebe interessante fare un confronto con il C++ usando la classe Vector anche in C++
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2002, 11:09   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Prova a fare un semplice algoritmo per la moltiplicazione riga-colonna di due matrici di float 1000 per 1000 (inizializzate casualmente)...poi a tradurlo in C++ ci penso io
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 06-12-2002, 10:27   #15
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Pronto per provare!

Codice:
import java.util.Random;
import java.util.Date;

class TryThis {
  public static void main(String[] arg)	{
    Date start,end;
    int elements=1000;
    Random random=new Random(new Date().getTime());
    float[][] f1=new float[elements][elements];
    float[][] f2=new float[elements][elements];
    float[][] ff=new float[elements][elements];
    //inizializza le matrici
    for(int i=0;i<elements;i++)	{
      for(int j=0;j<elements;j++)	{
        f1[i][j]=random.nextFloat();
        f2[i][j]=random.nextFloat();
      }
    }
    //matrici inizializzate
    //inizio del calcolo del prodotto di matrici
    System.out.println((start=new Date()));
    for(int i=0;i<elements;i++) {
      for(int j=0;j<elements;j++)	{
        float sum=0f;
        for(int z=0;z<elements;z++)	{
          sum+=f1[i][z]*f2[z][j];
        }
        ff[i][j]=sum;
      }
    }
    System.out.println((end=new Date())+"\nEnd of process\n");
    //fine 
    long millisecs=end.getTime()-start.getTime();
    int seconds=(int)(millisecs/1000);
    int minutes=seconds/60;
    seconds=seconds-minutes*60;
    int msec=(int)millisecs-(seconds+minutes*60)*1000;
    System.out.println(
        "Time elapsed: "+minutes+" min "+seconds+" sec "+msec+" ms");
    System.exit(0);
  }
}
1 minuto 7 secondi circa, con un Athlon 1200 (per il solo calcolo del prodotto tra matrici)
So che Java è più lento di C/C++, ma sono curioso di sapere di quanto!

[x Cionci]

Potresti fare una traduzione pari pari in C++ e vedere cosa salta fuori?

Ciao.
PGI è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
Rocket Lab acquisisce Iridium: nasce un ...
Una ventola nascosta e un design fuori d...
Display e fotocamera insieme: a Zurigo n...
Lenovo Idea Tab Plus, il tablet per stud...
Un ingegnere di AMD ha riprodotto in cas...
SanDisk Optimus cresce con nuovi SSD cer...
Loongson contro Intel e AMD: dalla Cina ...
Australia, quasi tutti gli under-16 aggi...
Oltre 1.300 miliardi di dollari per la p...
Un nuovo studio mette in dubbio la natur...
Crisi Volkswagen, torna l'ipotesi cessio...
Il CERN spegne il Large Hadron Collider:...
Stranger Than Heaven avrà una storia mol...
Il futuro prezzo di PS6 preoccupa i gioc...
AMD Ryzen 10000 sempre più vicini...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:23.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v