Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
La tecnologia SQD-Mini LED di TCL arriva sul taglio da 65 pollici con la serie C8L: 2040 zone, pannello WHVA 2.0 e un picco che alle rilevazioni delle sonde tocca i 4400 nit nel profilo Filmmaker e un HDR quasi perfetto
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro
Wireless 2.4 GHz, Bluetooth 5.4, cancellazione attiva del rumore, design pieghevole e un'autonomia che mette in imbarazzo prodotti che costano il doppio. Le Maestro 500 non eccellono in nulla, ma offrono tutto. E a questo prezzo è difficile chiedere di più
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-09-2007, 08:29   #1
antoniod82
Member
 
Iscritto dal: Jun 2006
Città: Salerno
Messaggi: 238
[java] confronto tra array di stringhe

Ho 2 vettori di stringhe di cui uno è un sottinsieme dell'altro.
Esiste un metodo che mi ritorni un terzo array contenente le stringhe che sono in quello con + più stringhe ma nn nell'altro??

grazie.
antoniod82 è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2007, 08:47   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da antoniod82 Guarda i messaggi
Ho 2 vettori di stringhe di cui uno è un sottinsieme dell'altro.
Esiste un metodo che mi ritorni un terzo array contenente le stringhe che sono in quello con + più stringhe ma nn nell'altro??
Se intendi un qualche metodo nel framework standard di Java, no non mi risulta che ci sia.

Ma puoi certamente fartelo tu, non è affatto difficile.

EDIT: ti dò anche un aiuto, se questa elaborazione la fai passando attraverso una collection (es. LinkedList) fai tutto in 6 righe di codice pulite pulite senza fare neanche 1 loop.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet

Ultima modifica di andbin : 10-09-2007 alle 09:04.
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2007, 19:57   #3
antoniod82
Member
 
Iscritto dal: Jun 2006
Città: Salerno
Messaggi: 238
me ne sono uscito in 5 righe ma con 2 loop:

1. nel primo sostituisco nell'array + grande un carattere "x" al posto degli elementi in comune;

2. nel secondo mi costruisco un array scartando dall'ultimo gli elementi uguali a "x".

ieri ho messo un altro thread, nn so se l'hai letto, mica sai se si può creare il diagramma UML di un progetto direttamente in JBuilder??

grazie e alla prossima,
Antonio
antoniod82 è offline   Rispondi citando il messaggio o parte di esso
Old 11-09-2007, 08:57   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da antoniod82 Guarda i messaggi
me ne sono uscito in 5 righe ma con 2 loop:

1. nel primo sostituisco nell'array + grande un carattere "x" al posto degli elementi in comune;

2. nel secondo mi costruisco un array scartando dall'ultimo gli elementi uguali a "x".
Beh, scusa se lo dico ma questa è una gran boiata. Ma se ti piace così .....

Si potrebbe fare (come avevo detto prima) usando solamente le collezioni:
Codice:
public static String[] arrayAMinusB (String[] a, String[] b)
{
    LinkedList<String> list1 = new LinkedList<String> ();
    LinkedList<String> list2 = new LinkedList<String> ();
    Collections.addAll (list1, a);
    Collections.addAll (list2, b);
    list1.removeAll (list2);
    return list1.toArray (new String[list1.size()]);
}
Così è estremamente pulito ed elegante.

Se si volesse farlo senza usare in alcun modo le collezioni, si potrebbe fare così:
Codice:
public static String[] arrayAMinusB (String[] a, String[] b)
{
    String[] v = a.clone ();
    int n = 0;

    main:
    for (int i = 0; i < v.length; i++)
    {
        for (int j = 0; j < b.length; j++)
            if (v[i] == b[j])
                continue main;

        v[n++] = v[i];
    }

    String[] r = new String[n];
    System.arraycopy (v, 0, r, 0, n);
    return r;
}
Se poi si volesse realizzare una soluzione intermedia che utilizza una collezione, si potrebbe fare così:
Codice:
public static String[] arrayAMinusB (String[] a, String[] b)
{
    LinkedList<String> list = new LinkedList<String> ();

    main:
    for (int i = 0; i < a.length; i++)
    {
        for (int j = 0; j < b.length; j++)
            if (a[i] == b[j])
                continue main;

        list.add (a[i]);
    }

    return list.toArray (new String[list.size()]);
}
E nota che nessuna delle tre soluzioni va ad alterare in alcun modo gli array originali. Insomma .... di soluzioni migliori della tua ce ne sono.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 11-09-2007, 10:38   #5
rayman2
Senior Member
 
Iscritto dal: Jan 2002
Messaggi: 437
anche perchè se poi nell'array c'è già una stringa contenente solo "x" non funziona più niente!
rayman2 è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2007, 03:12   #6
antoniod82
Member
 
Iscritto dal: Jun 2006
Città: Salerno
Messaggi: 238
caro andbin,

ti confermi maestro.

grazie
antoniod82 è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2007, 03:13   #7
antoniod82
Member
 
Iscritto dal: Jun 2006
Città: Salerno
Messaggi: 238
(da cancellare)
antoniod82 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


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...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con ...
NVIDIA mostra una comunità di rob...
Sony annuncia LYTIA L910, arriva il sens...
Ericsson, il 5G è l’infrastruttur...
Marvell punta tutto su TSMC A14: sar&agr...
Hyundai a un passo dal controllo totale ...
Questo SSD vecchio 16 anni ha resistito ...
Monopattino elettrico Xiaomi in offerta:...
Microsoft usa le capre di Age of Empires...
Microsoft conferma bug nel Cestino in tu...
Accenture crolla del 20% in borsa, il pe...
ASUS Pro WS W890E-SAGE SE: sette PCIe 5....
Attenzione al prezzo di questa TV Hisens...
Chrome sbeffeggiato da Ballmer nel 2009:...
Un gioco Mac compatibile con Apple Silic...
La batteria allo stato solido di Honda s...
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: 05:26.


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