En java, se puede utilizar el genérico LinkedList
para mejorar la eficacia cuando los objetos se agregan a menudo al principio de la lista. ¿Cuál es su equivalente en los marcos de iOS?¿Cuál es el equivalente LinkedList en marcos iOS?
Respuesta
Es necesario comprender que en las clases de fundación como NSArray
, etc, no es lo que ha aprendido como una matriz, etc en su clase de programación que comienza. En particular, no tiene las características de rendimiento que normalmente asociaría a una matriz.
En este punto, hay muchas buenas publicaciones en el blog, p. uno por Ridiculous Fish y otro por Cocoa with Love
Por lo tanto, como todos los demás dijeron, simplemente use NSMutableArray
.
NSMutableArray es lo más cercano a esto. A pesar del nombre, está más cerca de una lista que una matriz. Sin embargo, "agregar y quitar elementos de cualquiera de los extremos toma tiempo constante", según this.
Además, ¿qué pasa con esto, una aplicación de terceros: https://github.com/mschettler/NSLinkedList
+1 'NSArray' tiene una * tonelada * de optimizaciones bajo el capó, y usar la solución integrada siempre es la mejor opción. Como la adición a cada extremo es una operación de tiempo constante, la necesidad de una lista vinculada real es negada, ya que 'NSArray' ya tiene las características de rendimiento deseadas. –
¿Tiene alguna fuente para agregar y eliminar características de rendimiento? Ctrl + F no aparece con la línea que cita en la documentación. – Joren
Ah, lo siento, es de una página diferente :) –
No hay un equivalente directo. Escribir una lista vinculada usted mismo es bastante fácil, pero dudo que gane mucho rendimiento en comparación con NSMutableArray
.
Hay un par de implementaciones de listas enlazadas diferentes en el código abierto CHDataStructures.
NSMutableArray es un vector o matriz dinámica pero no es una lista vinculada.
si NSMutableArray es un vector o matriz dinámica. ¿Cuál sería y equivalente a la lista enlazada en Objective-c? – user2924482
- 1. ¿Cuál es el equivalente de Html.fromHtml() de Android en iOS?
- 2. ¿Cuál es el equivalente de NSHomeDirectory() en CoreFoundation?
- 3. ¿Cuál es el equivalente a + = en Matlab?
- 4. ¿Cuál es el equivalente Response.Redirect en Silverlight?
- 5. ¿Cuál es el equivalente Python de Tomcat?
- 6. ¿Cuál es el equivalente Ruby de "pythonic"?
- 7. ¿Cuál es el equivalente Monotouch de dealloc?
- 8. ¿Cuál es el equivalente de argv [0]?
- 9. ¿Cuál es el equivalente de Android para NSURLProtocol del iOS SDK?
- 10. ¿Cuál es el equivalente de android.widget.Toast para las aplicaciones de iOS?
- 11. ¿Cuál es el equivalente de Android a la aplicación de muestra UICatalog de iOS/iPhone?
- 12. ¿Cuál es la JVM equivalente en C#?
- 13. ¿cuál es la consulta equivalente en mysql?
- 14. ¿Cuál es la forma aceptada de usar marcos en Delphi?
- 15. ¿Cuál es el equivalente .NET de StringBuffer en Java?
- 16. ¿Cuál es el equivalente de sincronizado en Objective-C?
- 17. ¿Cuál es el equivalente a "OnIdle" en WPF
- 18. ¿Cuál es el JSP equivalente a json_encode (en PHP)?
- 19. ¿Cuál es el equivalente de write_attribute para asociaciones en Rails?
- 20. ¿Cuál es el equivalente en C para reinterpret_cast?
- 21. ¿Cuál es el equivalente en Perl de $ _SERVER de PHP [...]?
- 22. ¿Cuál es el equivalente de "aptitude" en Mac OSX?
- 23. ¿Cuál es el equivalente de "has_key" en javascript?
- 24. ¿cuál es el equivalente de C# de static {...} en Java?
- 25. ¿Cuál es el equivalente de issubclass de instancia en python?
- 26. ¿Cuál es el equivalente a 'ir' en MySQL?
- 27. ¿Cuál es el equivalente de DefaultControllerFactory en Web API?
- 28. ¿cuál es el equivalente .NET de @Deprecated en java?
- 29. ¿Cuál es el equivalente de REGEXP_SUBSTR en mysql?
- 30. ¿Cuál es el equivalente cmd/powershell de `which` en bash?
Para colecciones grandes, las matrices tienen un rendimiento de inserción/eliminación terrible – jjxtra
Sí, pero 'NSMutableArray' no es una matriz. – Yuji
D'oh! Eso lo explica. – sudo