We maken een Set
als:
Set myset = new HashSet()
Hoe maken we een List
in Java?
Antwoord 1, autoriteit 100%
List myList = new ArrayList();
of met generieke geneesmiddelen (Java 7of hoger )
List<MyType> myList = new ArrayList<>();
of met generieke geneesmiddelen (oude java-versies)
List<MyType> myList = new ArrayList<MyType>();
Antwoord 2, autoriteit 48%
Bovendien, als u een lijst wilt maken met dingen erin (hoewel deze een vaste grootte heeft):
List<String> messages = Arrays.asList("Hello", "World!", "How", "Are", "You");
Antwoord 3, autoriteit 18%
Laat me samenvatten en iets toevoegen:
1. new ArrayList<String>();
2. Arrays.asList("A", "B", "C")
1. Lists.newArrayList("Mike", "John", "Lesly");
2. Lists.asList("A","B", new String [] {"C", "D"});
Onveranderlijke lijst
1. Collections.unmodifiableList(new ArrayList<String>(Arrays.asList("A","B")));
2. ImmutableList.builder() // Guava
.add("A")
.add("B").build();
3. ImmutableList.of("A", "B"); // Guava
4. ImmutableList.copyOf(Lists.newArrayList("A", "B", "C")); // Guava
lege onveranderlijke lijst
1. Collections.emptyList();
2. Collections.EMPTY_LIST;
lijst met tekens
1. Lists.charactersOf("String") // Guava
2. Lists.newArrayList(Splitter.fixedLength(1).split("String")) // Guava
lijst met gehele getallen
Ints.asList(1,2,3); // Guava
4, Autoriteit 7%
in Java 8
Om een niet-lege lijst met vaste formaat (bewerkingen zoals toe te voegen, verwijderen, enz. Te maken, worden niet ondersteund):
List<Integer> list = Arrays.asList(1, 2); // but, list.set(...) is supported
Om een niet-lege mutable lijst te maken:
List<Integer> list = new ArrayList<>(Arrays.asList(3, 4));
in Java 9
Een nieuwe List.of(...)
statische fabrieksmethoden:
List<Integer> immutableList = List.of(1, 2);
List<Integer> mutableList = new ArrayList<>(List.of(3, 4));
in Java 10
Gebruik de Lokale variabele typing inferentie :
var list1 = List.of(1, 2);
var list2 = new ArrayList<>(List.of(3, 4));
var list3 = new ArrayList<String>();
en volg de beste praktijken …
Gebruik geen rauwe typen
Sinds Java 5 zijn generiek een deel van de taal geweest – u zou ze moeten gebruiken:
List<String> list = new ArrayList<>(); // Good, List of String
List list = new ArrayList(); // Bad, don't do that!
-programma voor interfaces
Programma bijvoorbeeld naar de lijst List
INTERFACE:
List<Double> list = new ArrayList<>();
in plaats van:
ArrayList<Double> list = new ArrayList<>(); // This is a bad idea!
5, Autoriteit 3%
Lees eerst dit , lees dan dit en dit . 9 van de 10 keer zul je gebruik maken van een van deze twee implementaties.
In feite, net gelezen Sun’s Guide to the Collecties framework .
6, Autoriteit 2%
//simple example creating a list form a string array
String[] myStrings = new String[] {"Elem1","Elem2","Elem3","Elem4","Elem5"};
List mylist = Arrays.asList(myStrings );
//getting an iterator object to browse list items
Iterator itr= mylist.iterator();
System.out.println("Displaying List Elements,");
while(itr.hasNext())
System.out.println(itr.next());
7, Autoriteit 2%
Sinds Java 7 u type inference voor generieke bijvoorbeeld creatie , dus er is geen noodzaak om generieke parameters dupliceren aan de rechterkant van de opdracht:
List<String> list = new ArrayList<>();
een vaste grootte lijst kan worden gedefinieerd als:
List<String> list = Arrays.asList("foo", "bar");
Voor onveranderlijke lijsten kunt u de Guava bibliotheek te gebruiken:
List<String> list = ImmutableList.of("foo", "bar");
Antwoord 8, autoriteit 2%
Lijstis slechts een interface net als Set.
Zoals HashSet een implementatie is van een Set die bepaalde eigenschappen heeft met betrekking tot het toevoegen/opzoeken/verwijderen van prestaties, is ArrayList de kale implementatie van een List.
Als u de documentatie voor de respectieve interfaces bekijkt, vindt u “Alle bekende implementatieklassen” en kunt u beslissen welke het meest geschikt is voor uw behoeften.
De kans is groot dat het ArrayList.
9
Soms – maar slechts zeer zelden – in plaats van een nieuwe arrayclist, wilt u misschien een nieuwe Linkedlist. Begin met ArrayList en als u prestatieproblemen en bewijs hebt dat de lijst het probleem is, en veel toevoegen en verwijderen in die lijst – dan – niet eerder – schakel over naar een Linkedlist en kijk of het verbeteren. Maar in de main stick met arrayclist en alles komt goed.
10
List list = new ArrayList();
Of met generieke geneesmiddelen
List<String> list = new ArrayList<String>();
Je kunt string natuurlijk ook vervangen door elk type variabele, zoals Integer.
Antwoord 11
Eén voorbeeld:
List somelist = new ArrayList();
Je kunt de javadoc voor lijst bekijken en zoek alle bekende implementatieklassen van de List
-interface die bij de Java-API zijn inbegrepen.
Antwoord 12
Met Google Collectionskunt u de volgende methoden gebruiken in de Lijstenklasse
import com.google.common.collect.Lists;
// ...
List<String> strings = Lists.newArrayList();
List<Integer> integers = Lists.newLinkedList();
Er zijn overbelastingen voor het initialiseren en initialiseren van varargs vanaf een Iterable<T>
.
Het voordeel van deze methoden is dat u de generieke parameter niet expliciet hoeft op te geven zoals u zou doen bij de constructor – de compiler zal deze afleiden uit het type variabele.
Antwoord 13
Als optie kunt u hier dubbele accolades gebruiken:
List<String> list = new ArrayList<String>(){
{
add("a");
add("b");
}
};
14
Zoals verklaring van de arraylijst in Java is als
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
Er is een groot aantal manier waarop u de arraylijst in Java kunt maken en initialiseren.
1) List list = new ArrayList();
2) List<type> myList = new ArrayList<>();
3) List<type> myList = new ArrayList<type>();
4) Using Utility class
List<Integer> list = Arrays.asList(8, 4);
Collections.unmodifiableList(Arrays.asList("a", "b", "c"));
5) Using static factory method
List<Integer> immutableList = List.of(1, 2);
6) Creation and initializing at a time
List<String> fixedSizeList = Arrays.asList(new String[] {"Male", "Female"});
Again you can create different types of list. All has their own characteristics
List a = new ArrayList();
List b = new LinkedList();
List c = new Vector();
List d = new Stack();
List e = new CopyOnWriteArrayList();
15
List<Object> nameOfList = new ArrayList<Object>();
U moet List
en ArrayList
importeren.
16
Meer opties om hetzelfde te doen met Java 8, niet beter, niet slechter, gewoon anders en als je wat extra werk wilt doen met de lijsten, Streams geeft u meer alternatieven (filter, kaart, vermindering, enz.)
List<String> listA = Stream.of("a", "B", "C").collect(Collectors.toList());
List<Integer> listB = IntStream.range(10, 20).boxed().collect(Collectors.toList());
List<Double> listC = DoubleStream.generate(() -> { return new Random().nextDouble(); }).limit(10).boxed().collect(Collectors.toList());
LinkedList<Integer> listD = Stream.iterate(0, x -> x++).limit(10).collect(Collectors.toCollection(LinkedList::new));
Antwoord 17
Met Java 9 kunt u het volgende doen om een onveranderlijkeList
te maken:
List<Integer> immutableList = List.of(1, 2, 3, 4, 5);
List<Integer> mutableList = new ArrayList<>(immutableList);
Antwoord 18
Er zijn veel manieren om een set en een lijst te maken. HashSet en ArrayList zijn slechts twee voorbeelden. Het is tegenwoordig ook vrij gebruikelijk om generieke geneesmiddelen te gebruiken bij collecties. Ik stel voor dat je eens kijkt naar wat ze zijn
Dit is een goede introductie voor de ingebouwde Java-verzamelingen. http://java.sun.com/javase/6 /docs/technotes/guides/collections/overview.html
Antwoord 19
List arrList = new ArrayList();
Het is beter dat u generieke geneesmiddelen gebruikt zoals hieronder wordt gesuggereerd:
List<String> arrList = new ArrayList<String>();
arrList.add("one");
Als u LinkedList gebruikt.
List<String> lnkList = new LinkedList<String>();
20
Hieronder volgen enkele manieren waarop u lijsten kunt maken.
-
Hiermee wordt een lijst met vaste grootte gemaakt, Toevoegen / verwijderen -elementen is niet mogelijk, het geeft een
java.lang.UnsupportedOperationException
Als u probeert doe dat.List<String> fixedSizeList = Arrays.asList(new String[] {"Male", "Female"});
-
De volgende versie is een eenvoudige lijst waar u een aantal elementen kunt toevoegen / verwijderen.
List<String> list = new ArrayList<>();
-
Hieronder kunt u een
LinkedList
in Java maken, als u frequent insertion / verwijdering van elementen op de lijst moet doen, moet uLinkedList
gebruiken vanArrayList
List<String> linkedList = new LinkedList<>();
21
Eclipse-collecties U kunt een lijst als volgt maken:
List<String> list1 = Lists.mutable.empty();
List<String> list2 = Lists.mutable.of("One", "Two", "Three");
Als u een onveranderlijke lijst wilt:
ImmutableList<String> list3 = Lists.immutable.empty();
ImmutableList<String> list4 = Lists.immutable.of("One", "Two", "Three");
U kunt automatisch boksen vermijden met het gebruik van primitieve lijsten. Hier is hoe je int lijsten hebt gemaakt:
MutableIntList list5 = IntLists.mutable.empty();
MutableIntList list6 = IntLists.mutable.of(1, 2, 3);
ImmutableIntList list7 = IntLists.immutable.empty();
ImmutableIntList list8 = IntLists.immutable.of(1, 2, 3);
Er zijn varianten voor alle 8 primitieven.
MutableLongList longList = LongLists.mutable.of(1L, 2L, 3L);
MutableCharList charList = CharLists.mutable.of('a', 'b', 'c');
MutableShortList shortList = ShortLists.mutable.of((short) 1, (short) 2, (short) 3);
MutableByteList byteList = ByteLists.mutable.of((byte) 1, (byte) 2, (byte) 3);
MutableBooleanList booleanList = BooleanLists.mutable.of(true, false);
MutableFloatList floatList = FloatLists.mutable.of(1.0f, 2.0f, 3.0f);
MutableDoubleList doubleList = DoubleLists.mutable.of(1.0, 2.0, 3.0);
Opmerking:ik ben toegewijd aan Eclipse Collections.
Antwoord 22
Probeer dit:
List<String> messages = Arrays.asList("bla1", "bla2", "bla3");
Of:
List<String> list1 = Lists.mutable.empty(); // Empty
List<String> list2 = Lists.mutable.of("One", "Two", "Three");
Antwoord 23
Als u een serialiseerbare, onveranderlijke lijst met een enkele entiteit nodig heeft, kunt u het volgende gebruiken:
List<String> singList = Collections.singletonList("stackoverlow");