Įrašykite inicijavimą viena eilute

Noriu sukurti bandymų parametrų sąrašą. Iš pradžių tai padariau:

 ArrayList<String> places = new ArrayList<String>(); places.add("Buenos Aires"); places.add("Córdoba"); places.add("La Plata"); 

Tada aš pertvarkiau kodą taip:

 ArrayList<String> places = new ArrayList<String>( Arrays.asList("Buenos Aires", "Córdoba", "La Plata")); 

Ar yra geresnis būdas tai padaryti?

2370
17 июня '09 в 7:10 2009-06-17 07:10 „Macarse“ nustatytas birželio 17 d., 09:10, 2009-06-17 07:10
@ 32 atsakymai
  • 1
  • 2

Iš tikrųjų, geriausias būdas inicijuoti „ ArrayList yra būdas, kurį parašėte, nes jam nereikia sukurti naujo List :

 ArrayList<String> list = new ArrayList<String>(); list.add("A"); list.add("B"); list.add("C"); 

Spąstai yra tai, kad norint pasiekti šį List egzempliorių, reikia daug įvesties.

Yra alternatyvų, pvz., Sukuriant anoniminę vidinę klasę su egzemplioriaus iniciatoriu (taip pat vadinama „dvigubo brace“ inicijavimu):

 ArrayList<String> list = new ArrayList<String>() {{ add("A"); add("B"); add("C"); }}; 

Vis dėlto man tikrai nepatinka šis metodas, nes galų gale esate „ ArrayList poklasis, turintis egzemplioriaus iniciatorių, ir ši klasė sukurta tik tam, kad būtų sukurtas vienas objektas - tai tiesiog atrodo šiek tiek per daug su manimi.

Kas būtų malonu, jei būtų priimtas pasiūlymo rinkinysProject Coin“ literatūroms (daroma prielaida, kad ji bus pateikta „Java 7“, tačiau vargu ar bus „Java 8“ dalis):

 List<String> list = ["A", "B", "C"]; 

Deja, tai jums nepadeda, nes ji inicijuoja nepakeistą List , o ne „ ArrayList , be to, ji dar nėra prieinama, jei ji kada nors bus.

1760 m
17 июня '09 в 7:13 2009-06-17 07:13 atsakymas pateikiamas „ coobird“ birželio 17 d. , 09:13, 2009-06-17 07:13

Būtų lengviau, jei tiesiog ją paskelbėte kaip List - ar tai būtų ArrayList?

 List<String> places = Arrays.asList("Buenos Aires", "Córdoba", "La Plata"); 

Arba, jei turite tik vieną elementą:

 List<String> places = Collections.singletonList("Buenos Aires"); 
border=0

Tai reikštų, kad places nekintamos (jei bandysite ją pakeisti, ji padidins UnsupportedOperationException ).

Jei norite sukurti kintamą sąrašą, kuris yra konkretus „ ArrayList , galite sukurti „ ArrayList iš nekintamo sąrašo:

 ArrayList<String> places = new ArrayList<>(Arrays.asList("Buenos Aires", "Córdoba", "La Plata")); 
1871 m
17 июня '09 в 7:15 2009-06-17 07:15 atsakė Tomui birželio 17 d., 07:15, 2009-06-17 07:15

Paprastas atsakymas

„Java 9“ arba naujesnėje versijoje:

 List<String> strings = List.of("foo", "bar", "baz"); 

Tai suteiks jums nepakeistą List , todėl jo negalima keisti.
Tai, ką norite, daugeliu atvejų, kai ją užpildysite.


„Java 8“ arba anksčiau:

 List<String> strings = Arrays.asList("foo", "bar", "baz"); 

Tai suteiks jums List palaiko masyvas, todėl jis negali pakeisti ilgio.
Tačiau galite skambinti „ List.set , todėl jis vis dar gali būti List.set .


Trumpas atsakymas

Naudodami statinį importą, Arrays.asList galite padaryti dar trumpesnį:

 List<String> strings = asList("foo", "bar", "baz"); 

Statinis importas:

 import static java.util.Arrays.asList; 

Koks modernus IDE pasiūlys ir automatiškai jums padės.
Pavyzdžiui, „IntelliJ IDEA“ paspaudžiate Alt+Enter ir pasirinkite Static import method...


Tačiau aš nerekomenduojame List.of Java 9“ metodo List.of .
List.of jau List.of gana trumpas ir gerai skaitomas.


Naudokite Stream s

Kodėl tai turėtų būti List ?
„Java 8“ ar naujesnėje versijoje galite naudoti lankstesnį Stream :

 Stream<String> strings = Stream.of("foo", "bar", "baz"); 

Galite sujungti Stream :

 Stream<String> strings = Stream.concat(Stream.of("foo", "bar"), Stream.of("baz", "qux")); 

Arba galite pereiti iš Stream į List :

 List<String> strings = Stream.of("foo", "bar", "baz").collect(toList()); 

Tačiau patartina tiesiog naudoti „ Stream , nesurenkant jo List .


Jei tikrai reikia java.util.ArrayList

(Tikriausiai ne.)
Cituoju JEP 269 (mano pasirinkimas):

Yra nedidelis naudojimo atvejų rinkinys, skirtas inicijuoti kintamos kolekcijos egzempliorių su iš anksto nustatytu reikšmių rinkiniu. Paprastai pageidautina, kad šios iš anksto nustatytos vertės būtų nekintamos kolekcijos, o tada kopijuojamuoju konstruktoriumi inicijuotų keičiamąją kolekciją.


Jei norite iš anksto užpildyti „ ArrayList ir vėliau jį pridėti (kodėl?),

 List<String> strings = new ArrayList<>(List.of("foo", "bar")); strings.add("baz"); 

arba „Java“ 8 ar anksčiau:

 List<String> strings = new ArrayList<>(asList("foo", "bar")); strings.add("baz"); 

arba naudojant „ Stream :

 List<String> strings = Stream.of("foo", "bar") .collect(toCollection(ArrayList::new)); strings.add("baz"); 

Tačiau vėl geriau tiesiog naudoti „ Stream , o ne rinkti jį List .


Programa sąsajoms, o ne įgyvendinimui

Jūs sakėte, kad savo kodą paskelbėte kaip „ ArrayList “, bet tai turėtų būti daroma tik tada, jei naudojate „ ArrayList elementą, kuris nėra List .

Ką jūs tikriausiai nedarote.

Paprastai tiesiog reikia deklaruoti kintamuosius naudodami dažniausiai naudojamą sąsają (pvz., „ Iterable , „ Collection arba „ List ) ir inicijuoti juos konkrečiu diegimu (pvz., „ ArrayList , „ LinkedList arba „ Arrays.asList() ).

Priešingu atveju apribosite savo kodą su šiuo konkrečiu tipu ir jums bus sunkiau jį keisti, kai tik norite.

Pavyzdžiui:

 // Iterable if you just need iteration, for (String s : strings): Iterable<String> strings = new ArrayList<>(); // Collection if you also need .size() or .stream(): Collection<String> strings = new ArrayList<>(); // List if you also need .get(index): List<String> strings = new ArrayList<>(); // Don't declare a specific list implementation // unless you're sure you need it: ArrayList<String> strings = new ArrayList<>(); // You don't need ArrayList // Java 10 makes this moot: var strings = new ArrayList<String>(); 

Kitas pavyzdys visada būtų skelbti „ InputStream kintamąjį, net jei jis paprastai yra „ FileInputStream arba „ BufferedInputStream , nes kai jūs ar kažkas norės naudoti kitą InputStream rūšį.

677
09 сент. Atsakymą pateikė Christoffer Hammarström 09.09. 2010-09-09 15:33 '10, 15:33, 2010-09-09 15:33

Jei jums reikia paprasto sąrašo iš 1:

 List<String> strings = new ArrayList<String>(Collections.singletonList("A")); 

Jei reikia kelių objektų sąrašo:

 List<String> strings = new ArrayList<String>(); Collections.addAll(strings,"A","B","C","D"); 
105
30 авг. Atsakymas, kurį pateikė Randyaa rugpjūčio 30 d. 2011-08-30 07:33 '11 at 7:33 2011-08-30 07:33

Su „ Guava“ galite rašyti:

 ArrayList<String> places = Lists.newArrayList("Buenos Aires", "Córdoba", "La Plata"); 

Guavoje yra ir kitų naudingų statinių konstruktorių. Apie juos galite skaityti čia .

53
29 июля '13 в 16:24 2013-07-29 16:24 atsakymą pateikė Paweł Adamski liepos 13 d. 13 d. 16.44 val. 2013-07-29 16:24

Surinkimo literatūra nepateko į „Java 8“, tačiau galite naudoti „Stream“ API, kad sąrašas būtų inicijuotas vienoje ilgoje eilutėje:

 List<String> places = Stream.of("Buenos Aires", "Córdoba", "La Plata").collect(Collectors.toList()); 

Jei norite, kad jūsų List ArrayList :

 ArrayList<String> places = Stream.of("Buenos Aires", "Córdoba", "La Plata").collect(Collectors.toCollection(ArrayList::new)); 
32
04 апр. atsakymas pateiktas Mark 04 balandžio. 2014-04-04 02:21 '14, 2:21 AM 2014-04-04 02:21
 import com.google.common.collect.ImmutableList; .... List<String> places = ImmutableList.of("Buenos Aires", "Córdoba", "La Plata"); 
26
12 мая '10 в 16:14 2010-05-12 16:14 atsakymą pateikė George , gegužės 12 d. 10, 16:14 2010-05-12 16:14

Java 9 , kaip siūloma „ JDK“ patobulinimo pasiūlyme - 269 , tai gali būti pasiekta dabar naudojant kolekcijos literatūrą, pvz.

 List<String> list = List.of("A", "B", "C"); Set<String> set = Set.of("A", "B", "C"); 

Taip pat bus taikomas panašus požiūris į Map -

 Map<String, String> map = Map.of("k1", "v1", "k2", "v2", "k3", "v3") 

panašus į „ Collection Literals“ pasiūlymą, kaip teigia @coobird. Taip pat nurodyta JEP dokumente


alternatyvų

Kalbos pakeitimai buvo peržiūrimi kelis kartus ir atmesti:

Monetų pasiūlymo projektas, 2009 m. Kovo 29 d

Pinigų pasiūlymo projektas, 2009 m. Kovo 30 d

JEP 186 „Lambda Maiden“ diskusija, 2014 m. Sausio – kovo mėn

Kalbos sakiniai buvo nukreipti į pirmenybę nei bibliotekos pasiūlymas, kaip parodyta šioje ataskaitoje.

Related => Kokia yra perpildytų gamyklos patogumų metodų reikšmė „Java 9“ kolekcijoms

25
02 февр. atsakymas pateikiamas nullpointer 02 Feb. 2017-02-02 20:36 '17, 8:36 pm 2017-02-02 20:36

Galite sukurti gamyklos metodą:

 public static ArrayList<String> createArrayList(String ... elements) { ArrayList<String> list = new ArrayList<String>(); for (String element : elements) { list.add(element); } return list; } .... ArrayList<String> places = createArrayList( "São Paulo", "Rio de Janeiro", "Brasília"); 

Bet tai nėra daug geriau nei jūsų pirmasis refaktoravimas.

Jei norite daugiau lankstumo, tai gali būti bendra:

 public static <T> ArrayList<T> createArrayList(T ... elements) { ArrayList<T> list = new ArrayList<T>(); for (T element : elements) { list.add(element); } return list; } 
22
04 мая '10 в 3:57 2010-05-04 03:57 Atsakymą pateikė Jordão gegužės 10 d. 10 d. 3:57 2010-05-04 03:57

„Java 9“ sistemoje „ ArrayList galima lengvai inicijuoti į vieną eilutę:

 List<String> places = List.of("Buenos Aires", "Córdoba", "La Plata"); 

arba

 List<String> places = new ArrayList<>(List.of("Buenos Aires", "Córdoba", "La Plata")); 

Šis naujas „Java 9“ metodas turi daug privalumų, palyginti su ankstesniais:

  1. Erdvės efektyvumas
  2. nekintamumas
  3. Srautas saugus

Daugiau informacijos žr. Šiame pranešime → Koks skirtumas tarp „List.of“ ir „Arrays.asList“?

15
06 окт. atsakymas, kurį pateikė Mohit Tyagi 06 spalis 2017-10-06 04:16 '17 at 4:16 2017-10-06 04:16

Su Eclipse kolekcija (anksčiau GS kolekcija ) galite rašyti:

 List<String> list = Lists.mutable.with("Buenos Aires", "Córdoba", "La Plata"); 

Taip pat galite būti konkretesni apie tipus ir ar jie yra tarpusavyje keičiami ar nekeičiami.

 MutableList<String> mList = Lists.mutable.with("Buenos Aires", "Córdoba", "La Plata"); ImmutableList<String> iList = Lists.immutable.with("Buenos Aires", "Córdoba", "La Plata"); 

Taip pat galite tai padaryti su rinkiniais ir krepšiais:

 Set<String> set = Sets.mutable.with("Buenos Aires", "Córdoba", "La Plata"); MutableSet<String> mSet = Sets.mutable.with("Buenos Aires", "Córdoba", "La Plata"); ImmutableSet<String> iSet = Sets.immutable.with("Buenos Aires", "Córdoba", "La Plata"); Bag<String> bag = Bags.mutable.with("Buenos Aires", "Córdoba", "La Plata"); MutableBag<String> mBag = Bags.mutable.with("Buenos Aires", "Córdoba", "La Plata"); ImmutableBag<String> iBag = Bags.immutable.with("Buenos Aires", "Córdoba", "La Plata"); 

Pastaba: esu „Eclipse“ kolekcijų pasiuntinys.

7
28 янв. atsakymas Donaldui Raabui 28 d 2015-01-28 04:30 '15 - 4:30 2015-01-28 04:30

Čia yra dar vienas būdas:

 List<String> values = Stream.of("One", "Two").collect(Collectors.toList()); 
7
01 марта '17 в 1:50 2017-03-01 01:50 atsakymą pateikė Henok T kovo 1 d. 17 d. 1:50 2017-03-01 01:50

Apie kompaktiškiausią būdą tai padaryti:

 Double array[] = { 1.0, 2.0, 3.0}; List<Double> list = Arrays.asList(array); 
7
15 дек. Richard B atsakymas 15 d. 2014-12-15 14:44 '14, 14:44 2014-12-15 14:44

Tiesiog naudokite toliau pateiktą kodą.

 List<String> list = new ArrayList<String>() {{ add("A"); add("B"); add("C"); }}; 
7
21 сент. atsakymas, kurį pateikė user2801794 Sep 21 2013-09-21 12:43 '13, 12:43 val. 2013-09-21 12:43

(Turi būti komentaras, bet per ilgas, todėl naujas atsakymas). Kaip jau minėta, „ Arrays.asList metodas turi fiksuotą dydį, tačiau tai nėra vienintelė problema. Ji taip pat nėra labai gerai paveldėjusi. Pavyzdžiui, tarkime, kad turite:

 class A{} class B extends A{} public List<A> getAList(){ return Arrays.asList(new B()); } 

Pirmiau minėta priežastis sukelia kompiliatoriaus klaidą, nes List<B> (kas „Arrays.asList“ grąžina) nėra List<A> poklasis, net jei galite pridėti B tipo objektus į List<A> objektą. daryti kažką panašaus:

 new ArrayList<A>(Arrays.<A>asList(b1, b2, b3)) 

Tai tikriausiai yra geriausias būdas tai padaryti. jei jums reikia neriboto sąrašo arba turite naudoti paveldėjimą.

6
06 июня '13 в 8:44 2013-06-06 08:44 atsakymą pateikė user439407 birželio 06 d. 13:44 2013-06-06 08:44

Galite naudoti toliau pateiktas instrukcijas:

Kodo fragmentas:

 String [] arr = {"Sharlock", "Homes", "Watson"}; List<String> names = Arrays.asList(arr); 
6
28 марта '17 в 23:18 2017-03-28 23:18 Atsakymas pateikiamas „ Rashedcs“ kovo 28 d., 17:18, 2017-03-28 23:18

„Java 9“ turi tokį nepakeičiamo sąrašo sudarymo būdą:

 List<String> places = List.of("Buenos Aires", "Córdoba", "La Plata"); 

lengvai pritaikomas, kad prireikus būtų sukurtas kintamasis sąrašas:

 List<String> places = new ArrayList<>(List.of("Buenos Aires", "Córdoba", "La Plata")); 

Panašūs metodai galimi ir „ Set ir „ Map .

5
06 дек. atsakymą, kurį pateikė Carlos Heuberger, gruodžio 06 d 2016-12-06 12:57 '16 at 12:57 2016-12-06 12:57

Kaip sakė Tomas :

 List<String> places = Arrays.asList("Buenos Aires", "Córdoba", "La Plata"); 

Bet kadangi skundėsi, kad norite „ArrayList“, pirmiausia turite žinoti, kad „ArrayList“ yra „List“ poklasis ir galite tiesiog pridėti šią eilutę:

 ArrayList<String> myPlaces = new ArrayList(places); 

Nors tai gali jums pareikšti skundą dėl „našumo“.

Šiuo atveju man nėra prasmės, kodėl, kadangi jūsų sąrašas yra iš anksto nustatytas, jis nebuvo apibrėžtas kaip masyvas (kadangi dydis žinomas inicijavimo metu). Ir jei tai yra galimybė jums:

 String[] places = {"Buenos Aires", "Córdoba", "La Plata"}; 

Jei nerūpi mažų našumo skirtumų, galite tiesiog kopijuoti masyvą į „ArrayList“:

 ArrayList<String> myPlaces = new ArrayList(Arrays.asList(places)); 

Geras, bet ateityje jums reikia šiek tiek daugiau nei vietovės pavadinimo, jums reikia šalies kodo. Darant prielaidą, kad jis vis dar yra iš anksto nustatytas sąrašas, kuris niekada nepasikeis vykdymo metu, tuomet tikslinga naudoti „ enum rinkinį, kuris turės būti perskaičiuotas, jei ateityje šį sąrašą reikia keisti.

 enum Places {BUENOS_AIRES, CORDOBA, LA_PLATA} 

bus:

 enum Places { BUENOS_AIRES("Buenos Aires",123), CORDOBA("Córdoba",456), LA_PLATA("La Plata",789); String name; int code; Places(String name, int code) { this.name=name; this.code=code; } } 

„Enum“ turi statinės values metodą, kuris grąžina masyvą, kuriame yra visos skaičiavimo vertės tokia tvarka, kokia jos yra deklaruojamos, pavyzdžiui:

 for (Places p:Places.values()) { System.out.printf("The place %s has code %d%n", p.name, p.code); } 

Šiuo atveju manau, kad jums nereikės savo „ArrayList“.

PS Randyaa parodė dar vieną gerą būdą, naudodamas statinį metodą „Naudingumas“.

5
17 июня '13 в 20:57 2013-06-17 20:57 atsakymas pateikiamas Ozzy birželio 17 d., 13 val. 20:57 2013-06-17 20:57

Galite naudoti „ StickyList iš „ Cactoos“ :

 List<String> names = new StickyList<>( "Scott Fitzgerald", "Fyodor Dostoyevsky" ); 
4
25 июня '17 в 20:48 2017-06-25 20:48 atsakymas pateikiamas „ yegor256“ birželio 25 d. 17 d. 20:48 2017-06-25 20:48
 List<String> names = Arrays.asList("2","@2234","21","11"); 
4
22 июня '14 в 11:12 2014-06-22 11:12 atsakymas pateikiamas Ran Adlerui birželio 14 d. 14 val. 11:12 2014-06-22 11:12

Pabandykite naudoti šią kodo eilutę:

 Collections.singletonList(provider) 
3
16 мая '16 в 16:45 2016-05-16 16:45 atsakymas pateikiamas Ant20 gegužės 16, 16 d. 16:45

Taip, naudojant masyvus galite inicijuoti masyvų sąrašą vienoje eilutėje,

 List<String> strlist= Arrays.asList("aaa", "bbb", "ccc"); 
3
13 сент. Atsakymas, kurį pateikė Akash Manngroliya Sep 13 2016-09-13 08:54 '16 at 8:54 am 2016-09-13 08:54

„Java“ negali padaryti

 ArrayList<String> places = new ArrayList<String>( Arrays.asList("Buenos Aires", "Córdoba", "La Plata")); 

Kaip minėta, jums reikia atlikti dvigubo įpareigojimo inicijavimą:

 List<String> places = new ArrayList<String>() {{ add("x"); add("y"); }}; 

Tačiau tai gali priversti pridėti „ @SuppressWarnings("serial") anotaciją arba sukurti serijinį UUID, kuris yra erzinantis. Be to, dauguma kodų formuotojų ją išplėsti į kelis pareiškimus / eilutes.

Arba galite tai padaryti

 List<String> places = Arrays.asList(new String[] {"x", "y" }); 

bet tada galite padaryti @SuppressWarnings("unchecked") .

Taip pat, pasak javadoc, turėtumėte tai padaryti:

 List<String> stooges = Arrays.asList("Larry", "Moe", "Curly"); 

Bet aš negaliu jį sujungti su JDK 1.6.

2
14 февр. Atsakymas pateikiamas Dawg 14 vasario mėn. 2012-02-14 00:47 '12 at 0:47 2012-02-14 00:47

Geriausias būdas tai padaryti yra:

 package main_package; import java.util.ArrayList; public class Stackkkk { public static void main(String[] args) { ArrayList<Object> list = new ArrayList<Object>(); add(list, "1", "2", "3", "4", "5", "6"); System.out.println("I added " + list.size() + " element in one line"); } public static void add(ArrayList<Object> list,Object...objects){ for(Object object:objects) list.add(object); } } 

Paprasčiausiai sukurkite funkciją, kuri gali turėti tiek daug elementų, kiek norite, ir paskambinkite ją pridėti prie vienos eilutės.

1
17 июля '16 в 21:31 2016-07-17 21:31 atsakymą pateikė „ EasyOdoo “ liepos 17 d. 16:31 2016-07-17 21:31

Kartais jaučiu, kad žmonės tiesiog turi naudoti Groovy ir leisti „Java“ likti ramiai. Gerai, kad jis veikia JVM, taigi galite kopijuoti gryną „Java“ kodą bet kurioje „Groovy“ failo vietoje ir jis veiks.

Apie skelbimo įrašymą vienoje eilutėje, kaip jis atrodo Groovy:

 def list1 = [1,2,3] 

Kas tai yra, maan !!!

Žemiau yra Groovy sąrašas .

Neprivaloma

„Groovy“ žemėlapio skelbimas vienoje eilutėje:

 def map1 = [key1:1,key2:2] 

Skaityti daugiau apie Groovy žemėlapius .

„Json“ failo skaitymas

 { "map1":{"map2":{"key":"value1"}}} 

vienoje eilutėje:

 String value = new JsonSlurper().parse("path\\to\\file")["map1"]["map2"]["key"] 

arba

 String value = new JsonSlurper().parse("path\\to\\file").map1.map2.key 

Abi value yra value1 .

Įsivaizduokite, kad darai tą patį su „Jackson API“. Turite parašyti atitinkamus PO1 ir žemėlapio žemėlapius2. Tada surinkite. Be to, pakeitus JSON, turite atspindėti šiuos pakeitimus POJO. Tai visiškai sukuria JSON funkcionalumo kūrimo tikslą. Tai yra mirtina kodų perkompiliavimo grandinė. Ne tik nustatykite ir palikite.

Aš verkiu, kai manęs prašoma naudoti „Java“. Kodėl pasaulis kodėl? (arba prašau parodyti mane, jei aš neteisingas ... sumažins didžiąją dalį mano skausmo „Java World“)

1
30 нояб. atsakymas suteiktas Mahesha999 30 nov. 2016-11-30 14:59 '16 at 14:59 pm 2016-11-30 14:59

Čia yra kodas iš AbacusUtil

 // ArrayList List<String> list = N.asList("Buenos Aires", "Córdoba", "La Plata"); // HashSet Set<String> set = N.asSet("Buenos Aires", "Córdoba", "La Plata"); // HashMap Map<String, Integer> map = N.asMap("Buenos Aires", 1, "Córdoba", 2, "La Plata", 3); // Or for Immutable List/Set/Map ImmutableList.of("Buenos Aires", "Córdoba", "La Plata"); ImmutableSet.of("Buenos Aires", "Córdoba", "La Plata"); ImmutableSet.of("Buenos Aires", 1, "Córdoba", 2, "La Plata", 3); // The most efficient way, which is similar with Arrays.asList(...) in JDK. // but returns a flexible-size list backed by the specified array. List<String> set = Array.asList("Buenos Aires", "Córdoba", "La Plata"); 

Deklaracija: esu AbacusUtil kūrėjas.

1
28 нояб. atsakymą pateikė vartotojo_3380739 lapkritis 28 2016-11-28 22:56 '16 at 10:56 pm 2016-11-28 22:56
 Collections.singletonList(messageBody) 

Jei norite turėti vieno elemento sąrašą!

Kolekcijos iš java.util paketo.

1
03 апр. Atsakymas duotas ViliusK balandžio 3 d. 2015-04-03 12:30 '15 12:30 val. 2015-04-03 12:30

Kodėl gi ne sukurti paprastą naudingumo funkciją?

 static <A> ArrayList<A> ll(A... a) { ArrayList l = new ArrayList(a.length); for (A x : a) l.add(x); return l; } 

ll “ reiškia „pažodinį sąrašą“.

 ArrayList<String> places = ll("Buenos Aires", "Córdoba", "La Plata"); 
0
04 дек. Atsakymą pateikė Stefanas Reichas, gruodžio 4 d. 2017-12-04 14:23 '17 14:23 PM 2017-12-04 14:23

Man, Arrays.asList () yra geriausias ir patogiausias. Aš visada norėčiau inicijuoti šį kelią. Jei esate naujas „Java“ kolekcijose, norėčiau, kad būtų nuoroda į „ ArrayList“ inicijavimą

0
07 дек. Atsakymas, kurį pateikė Manoj Kumar 07 Dec 2014-12-07 08:37 '14 at 8:37 2014-12-07 08:37

Tiesą sakant, tai galima padaryti vienoje eilutėje:

 Arrays.asList(new MyClass[] {new MyClass("arg1"), new MyClass("arg2")}) 
-1
02 июня '13 в 16:34 2013-06-02 16:34 atsakymą pateikė Adrianas birželio 13 d. 13 d. 4:34 2013-06-02 16:34
  • 1
  • 2