예제 #1
0
        public SList <V> toList()
        {
            SList <V> re = new SList <V>(_size);

            if (_size == 0)
            {
                return(re);
            }

            V[] rValues = re.getValues();

            V[] values = _values;

            //正常的
            if (_end > _start)
            {
                Array.Copy(values, _start, rValues, 0, _end - _start);
            }
            else
            {
                int d = values.Length - _start;

                Array.Copy(values, _start, rValues, 0, d);
                Array.Copy(values, 0, rValues, d, _end);
            }

            re.justSetSize(_size);

            return(re);
        }
예제 #2
0
파일: SSet.cs 프로젝트: shineTeam7/home3
        /** 获取排序好的List */
        public SList <K> getSortedList()
        {
            SList <K> list = new SList <K>(_size);

            if (_size == 0)
            {
                return(list);
            }

            K[] values = list.getValues();
            int j      = 0;

            K[] keys = _set;
            K   k;

            for (int i = keys.Length - 1; i >= 0; --i)
            {
                if ((k = keys[i]) != null)
                {
                    values[j++] = k;
                }
            }

            list.justSetSize(size());

            list.sort();

            return(list);
        }
예제 #3
0
파일: SList.cs 프로젝트: shineTeam7/home3
        /** 截取list */
        public SList <V> subList(int from, int end)
        {
            if (from < 0)
            {
                from = 0;
            }

            if (end >= size())
            {
                end = size();
            }

            int len = end - from;

            if (len == 0)
            {
                return(new SList <V>());
            }

            if (len < 0)
            {
                Ctrl.throwError("subList,数据非法", from, end);
                return(new SList <V>());
            }

            SList <V> re = new SList <V>(len);

            Array.Copy(_values, from, re._values, 0, len);
            re.justSetSize(len);
            return(re);
        }
예제 #4
0
        /** 初始化容器布局 */
        protected virtual void initContainer()
        {
            if (ShineSetting.isEditor)
            {
                _dataList = new SList <object>(100);
                _dataList.justSetSize(100);
            }
            else
            {
                _dataList = new SList <object>();
            }

            resize();
        }