55ArrayList是一个使用使用C实现类似于Java ArrayList的扩展。
66适用于大数组环境,提高内存使用率,比原生array使用更少的内存。
77
8- ## linux mac 环境下编译安装
8+ ## Requirement
9+ php7.0 +
10+
11+ ## Install
12+ # Compile ArrayList in Linux mac
913
1014``` shell
1115phpize
1418make install
1519```
1620
17- 支持函数
21+ ## Document
22+ ``` php
23+ ArrayList implements ArrayAccess {
24+ /* 方法 */
25+ public __construct ([ int $size = 0 ] )
26+ public count ( void ) : int
27+ public static fromArray (void) : array
28+ public getSize ( void ) : int
29+ public get ( int $index ) : mixed
30+ public add (mixed $newval ) : void
31+ public toArray ( void ) : array
32+ }
33+
34+ ```
1835
36+ ## More
1937``` php
2038$ret = new ArrayList();
2139$ret->add(1);
@@ -25,31 +43,33 @@ $ret->getSize();
2543$ret->toArray();
2644```
2745
28- 二维ArrayList
29-
3046``` php
31- $ret = new ArrayList(10);
32- $ret2 = new ArrayList(3);
33- $ret2->add(1);
34- $ret2->add(2);
35- $ret2->add(3);
47+ const SIZE = 20;
48+ $ret2 = new ArrayList();
49+ $ret3 = new ArrayList();
50+ for ($i = 0; $i < SIZE; $i++)
51+ {
52+ $ret2->add((string)$i);
53+ $ret3->add((string)(SIZE-$i));
54+ }
55+ $ret = new Arraylist();
3656$ret->add($ret2);
37- for ($i=0; $i<$ret->count(); $i++) {
38- for ($j=0; $j<$ret2->count(); $j++) {
39- var_dump($ret2->get($j));
40- }
57+ $ret->add($ret3);
58+ for ($i = 0; $i < $ret->count(); $i++) {
59+ for($j = 0; $j < $ret->get($i)->count(); $j++) {
60+ var_dump($ret->get($i)->get($j));
61+ }
62+ echo "\n";
4163}
4264```
4365
44- ArrayList存array
45-
4666``` php
47- $ret3 = new ArrayList(1 );
48- $ret3 ->add([1, 3,4, 5, 6,]);
49- $ret3 ->add([3, 4,5,6, 7, ]);
50- for ($i= 0; $i<$ret3 ->count(); $i++){
51- foreach($ret3 ->get($i) as $v){
52- var_dump($v);
53- }
67+ $ret = new ArrayList();
68+ $ret ->add([1, 3, 4, 5, 6,]);
69+ $ret ->add([8, 9, 10 ]);
70+ for ($i = 0; $i< $ret ->count(); $i++) {
71+ foreach($ret ->get($i) as $v){
72+ var_dump($v);
73+ }
5474}
5575```
0 commit comments