List
•Dart中可以直接打印list包括list的元素,List也是对象。java中直接打印list结果是地址值
•Dart中List的下标索引和java一样从0开始
•和java一样支持泛型。
•有增删改查,支持倒序,自带排序、洗牌,可使用+将两个List合并
list.dart
void main(){
/// ---------------------------------Lists列表(数组):List--------------------------------
print('-----------------------Lists------------------------');
//声明
//自动长度
List growableList = List();
// List growableList = new List()..length = 3;
growableList..add(1)..add(2)..add('damon');
print('growableList: ${growableList}'); //输出 growableList: [1, 2, damon]
//固定长度
var list = List(3); //List的声明,可以用var也可用List。
list[0] = 1; //下标索引从0开始
list[1] = 2;
list[2] = 'damon';
print('list: ${list}'); //输出 list: [1, 2, damon]
//元素类型固定
var typeList = List<int>();
typeList.add(1);
typeList.add(2);
typeList.add(3);
print('typeList: ${typeList}');// 输出 typeList: [1, 2, 3]
//常用属性
int first = typeList.first;
print('typeList.first: ${first}'); //第一个元素 输出 typeList.first: 1
int last = typeList.last;
print('typeList.last: ${last}'); //最后一个元素 输出 typeList.last: 3
int length = typeList.length;
print('typeList.length: ${length}'); //元素个数 输出 typeList.length: 3
bool isEmpty = typeList.isEmpty;
print('typeList.isEmpty: ${isEmpty}'); //是否为空 输出 typeList.isEmpty: false
bool isNotEmpty = typeList.isNotEmpty;
print('typeList.isNotEmpty: ${isNotEmpty}'); //是否不为空 输出 typeList.isNotEmpty: true
Iterable reversed = typeList.reversed;
print('typeList.reversed: ${reversed}'); //倒序 输出 typeList.reversed: (3, 2, 1)
//常用方法 增删改查,排序,洗牌,复制子列表
var list4 = [];
//增
list4.add(1);
print('add 1 :${list4}'); // 输出 add 1 :[1]
list4.addAll([2, 3, 4]);
print('addAll [2, 3, 4] :${list4}'); // 输出 addAll [2, 3, 4] :[1, 2, 3, 4]
list4.insert(0, 0);
print('insert(0, 0) :${list4}'); // 输出 insert(0, 0) :[0, 1, 2, 3, 4]
list4.insertAll(1, [5, 6, 7]);
print('insertAll(1, [5, 6, 7]) :${list4}'); // 输出 insertAll(1, [5, 6, 7]) :[0, 5, 6, 7, 1, 2, 3, 4]
//删
list4.remove(5);
print('remove 5 :${list4}'); // 输出 remove 5 :[0, 6, 7, 1, 2, 3, 4]
list4.removeAt(2);
print('remove at 0 :${list4}'); // 输出 remove at 0 :[0, 6, 1, 2, 3, 4]
//改
list4[4] = 5;
print('update list4[4] to 5 :$list4}'); // 输出 update list4[4] to 5 :[0, 6, 1, 2, 5, 4]}
//range
list4.fillRange(0, 3, 9);
print('fillRange update list4[0]-list4[2] to 9 :$list4}'); // 输出 fillRange update list4[0]-list4[2] to 9 :[9, 9, 9, 2, 5, 4]}
Iterable getRange = list4.getRange(0, 3);
print('getRange list4[0]-list4[2] :$getRange}'); // 输出 getRange list4[0]-list4[2] :(9, 9, 9)}
//查
var contains = list4.contains(5);
print('list4 contains 5 :${contains}'); // 输出 list4 contains 5 :true
var indexOf = list4.indexOf(1);
print('list4 indexOf 1 :${indexOf}'); // 输出 list4 indexOf 1 :-1
int indexWhere = list4.indexWhere((test) => test == 5);
print('list4 indexWhere 5 :${indexWhere}'); // 输出 list4 indexWhere 5 :4
//排序
list4.sort();
print('list4 sort :${list4}'); // 输出 list4 sort :[2, 4, 5, 9, 9, 9]
//洗牌
list4.shuffle();
print('list4 shuffle :${list4}'); // 输出 list4 shuffle :[9, 4, 2, 5, 9, 9]
//复制子列表
var list5 = list4.sublist(1);
print('sublist(1) list5 :${list5}'); // 输出 sublist(1) list5 :[4, 2, 5, 9, 9]
//操作符
var list6 = [8, 9];
print('list6 :${list6}'); // 输出 list6 :[8, 9]
var list7 = list5 + list6;
print('list5 + list6 :${list7}'); // 输出 list5 + list6 :[4, 2, 5, 9, 9, 8, 9]
print('-----------------------Lists------------------------');
}
输出:
D:\flutter\bin\cache\dart-sdk\bin\dart.exe --enable-asserts --enable-vm-service:13151 D:\Code\Flutter\FlutterHello\flutter_app\lib\list.dart
lib/list.dart: Warning: Interpreting this as package URI, 'package:flutterapp/list.dart'.
Observatory listening on http://127.0.0.1:13152/mZxly8_yits=/
-----------------------Lists------------------------
growableList: [1, 2, damon]
list: [1, 2, damon]
typeList: [1, 2, 3]
typeList.first: 1
typeList.last: 3
typeList.length: 3
typeList.isEmpty: false
typeList.isNotEmpty: true
typeList.reversed: (3, 2, 1)
add 1 :[1]
addAll [2, 3, 4] :[1, 2, 3, 4]
insert(0, 0) :[0, 1, 2, 3, 4]
insertAll(1, [5, 6, 7]) :[0, 5, 6, 7, 1, 2, 3, 4]
remove 5 :[0, 6, 7, 1, 2, 3, 4]
remove at 0 :[0, 6, 1, 2, 3, 4]
update list4[4] to 5 :[0, 6, 1, 2, 5, 4]}
fillRange update list4[0]-list4[2] to 9 :[9, 9, 9, 2, 5, 4]}
getRange list4[0]-list4[2] :(9, 9, 9)}
list4 contains 5 :true
list4 indexOf 1 :-1
list4 indexWhere 5 :4
list4 sort :[2, 4, 5, 9, 9, 9]
list4 shuffle :[9, 4, 2, 5, 9, 9]
sublist(1) list5 :[4, 2, 5, 9, 9]
list6 :[8, 9]
list5 + list6 :[4, 2, 5, 9, 9, 8, 9]
-----------------------Lists------------------------
Process finished with exit code 0