AFAIK, istnieją dwa podejścia: Powtórz kopię kolekcji Użyj iteratora rzeczywistej kolekcji Na przykład, List<Foo> fooListCopy = new ArrayList<Foo>(fooList); for(Foo foo : fooListCopy){ // modify actual fooList } i Iterator<Foo> itr = fooList.iterator(); while(itr.hasNext()){ // modify actual fooList using itr.remove() } Czy są jakieś powody, aby preferować jedno podejście nad drugim …
Chcę mieć odwrócony widok listy na liście (w podobny sposób, jak List#sublistzapewnia widok listy sublist na liście). Czy jest jakaś funkcja zapewniająca tę funkcjonalność? Nie chcę tworzyć żadnej kopii listy ani modyfikować listy. Wystarczyłoby, gdybym w tym przypadku znalazł przynajmniej jedną iterator do tyłu. Wiem też, jak to zrobić. Pytam …
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą specjalistyczną, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …
Chcę sprawdzić, czy kolekcja jest pusta i null. Czy ktoś mógłby dać mi znać najlepszą praktykę. Obecnie sprawdzam jak poniżej: if (null == sampleMap || sampleMap.isEmpty()) { // do something } else { // do something else }
Jaki jest najbardziej skuteczny sposób na przejrzenie kolekcji? List<Integer> a = new ArrayList<Integer>(); for (Integer integer : a) { integer.toString(); } lub List<Integer> a = new ArrayList<Integer>(); for (Iterator iterator = a.iterator(); iterator.hasNext();) { Integer integer = (Integer) iterator.next(); integer.toString(); } Proszę pamiętać, że to nie jest dokładną kopią tego …
Na przykład obecnie robię to: Set<String> setOfTopicAuthors = .... List<String> list = Arrays.asList( setOfTopicAuthors.toArray( new String[0] ) ); Czy potrafisz to pokonać?
Czy istnieje sposób, aby uzyskać kolekcję wszystkich modeli w aplikacji Rails? Zasadniczo mogę zrobić: Models.each do |model| puts model.class.name end
Oto niezła pułapka, którą właśnie spotkałem. Rozważ listę liczb całkowitych: List<Integer> list = new ArrayList<Integer>(); list.add(5); list.add(6); list.add(7); list.add(1); Jakieś wykształcone zgadywanie, co się stanie, kiedy wykonasz egzekucję list.remove(1)? Co list.remove(new Integer(1))? Może to powodować paskudne błędy. Jaki jest właściwy sposób na rozróżnienie remove(int index), który usuwa element z danego …
W Javie możemy wykonać następujące czynności public class TempClass { List<Integer> myList = null; void doSomething() { myList = new ArrayList<>(); myList.add(10); myList.remove(10); } } Ale jeśli przepiszemy go bezpośrednio do Kotlin, jak poniżej class TempClass { var myList: List<Int>? = null fun doSomething() { myList = ArrayList<Int>() myList!!.add(10) myList!!.remove(10) …
Bardzo proste i szybkie pytanie o biblioteki Java: czy istnieje gotowa klasa, która implementuje a Queueo ustalonym maksymalnym rozmiarze - tzn. Zawsze pozwala na dodawanie elementów, ale po cichu usunie elementy główne, aby pomieścić miejsce dla nowo dodanych elementów. Oczywiście wdrożenie go ręcznie jest trywialne: import java.util.LinkedList; public class LimitedQueue<E> …
Jaki jest najlepszy sposób przekonwertowania kodu JSON, ponieważ: { "data" : { "field1" : "value1", "field2" : "value2" } } na Mapie Java, w której kluczem są (pole1, pole2), a wartości dla tych pól to (wartość1, wartość2). Jakieś pomysły? Czy powinienem do tego użyć Json-lib? A może lepiej, jeśli napiszę …
W Javie 8 istnieje Stream.collectmożliwość agregacji zbiorów. W Kotlinie nie istnieje to w ten sam sposób, poza tym, że może być zbiorem funkcji rozszerzenia w stdlib. Ale nie jest jasne, jakie są odpowiedniki dla różnych przypadków użycia. Na przykład na górze JavaDocCollectors znajdują się przykłady napisane dla Java 8, a …
Chociaż możemy dziedziczyć po klasie bazowej / interfejsie, dlaczego nie możemy zadeklarować List<> używającej tej samej klasy / interfejsu? interface A { } class B : A { } class C : B { } class Test { static void Main(string[] args) { A a = new C(); // OK …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.