日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 过滤数组中的重复元素,Flutter List数组避免插入重复数据的实现

發布時間:2023/12/10 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 过滤数组中的重复元素,Flutter List数组避免插入重复数据的实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

List

具有一定長度存在索引的對象集合(長度為0不存在索引,長度>0存在索引)

常見列表

1、定長列表

默認值null

例如:List fixedLengthList = new List(2)、List fixedLengthList = new List(8)

List fixedLengthList = new List(2);

for(int i=0;i<2;i++){

print("索引為${i}的值${fixedLengthList[i]}");

}

I/flutter ( 9251): 索引為0的值null

I/flutter ( 9251): 索引為1的值null

固定長度不可修改

List fixedLengthList = new List(2);

//改變固定數組長度

fixedLengthList.length=30;

Unsupported operation: Cannot change the length of a fixed-length list

大概意思:無法更改固定長度數組的長度

List fixedLengthList = new List(2);

///執行添加數據操作

fixedLengthList.add(0);

fixedLengthList.add(1);

List fixedLengthList = new List(2);

fixedLengthList[0]=1;

fixedLengthList[1]=2;

///添加數據

fixedLengthList.addAll([3,4]);

Unsupported operation: Cannot add to a fixed-length list

大概以上: 不能添加數據到固定長度數組

List fixedLengthList = new List(2);

//執行插入數據

fixedLengthList.insert(0, 0);

Unsupported operation: Cannot add to a fixed-length list

大概意思: 不能添加數據到固定長度數組

List fixedLengthList = new List(2);

///執行刪除操作

fixedLengthList.removeLast();

List fixedLengthList = new List(2);

///執行刪除操作

fixedLengthList.removeAt(0);

List fixedLengthList = new List(2);

fixedLengthList[0]=1;

fixedLengthList[1]=2;

///刪除包含索引0和1范圍內數據

fixedLengthList.removeRange(0, 1);

List fixedLengthList = new List(2);

fixedLengthList[0]=1;

fixedLengthList[1]=2;

///刪除索引0-1,然后在進行替換刪除索引值

fixedLengthList.replaceRange(0, 1, [3,4]);

Unsupported operation: Cannot remove from a fixed-length list

大概意思:不能刪除固定長度數組數據

List fixedLengthList = new List(2);

///執行清除數據操作

fixedLengthList.clear();

Unsupported operation: Cannot clear a fixed-length list

大概意思:不能清理固定長度數組數據

可排序、替換、截取

List fixedLengthList = new List(2);

fixedLengthList[0]=1;

fixedLengthList[1]=2;

///執行截取指定范圍的數組

fixedLengthList.sublist(0);

///排序

fixedLengthList..sort((a, b) => a.compareTo(b));

///

fixedLengthList.setRange(0, 1, [3,4],0);

///索引0-1范圍的值不包括1,修改成3

fixedLengthList.fillRange(0, 1,3);

2、可增長列表

可改變數組長度、 可執行添加、刪除、可排序、可替換、可截取

.可增長列表[]保留了內部緩沖區

.緩沖區可增長

.添加數據操作在固定時間內執行 (設置固定長度會花費與新長度成比例的時間,修改容量,添加操作將需要立即增加緩沖區容量)

.列表是可以迭代的

.在執行列表操作時,例如在調用forEach或sort期間,通常不允許修改列表的長度(添加或刪除元素)

.通過直接迭代列表或通過迭代由列表支持的Iterable更改列表的長度,可以中斷迭代

List fixedLengthList = [];

//改變數組長度

fixedLengthList.length=2;

///執行添加數據操作

fixedLengthList.add(0);

fixedLengthList.add(1);

fixedLengthList[0]=1;

fixedLengthList[1]=2;

///添加數據

fixedLengthList.addAll([3,4]);

//執行插入數據

fixedLengthList.insert(0, 0);

///執行刪除操作

fixedLengthList.removeLast();

///執行刪除操作

fixedLengthList.removeAt(0);

///刪除包含索引0和1范圍內數據

fixedLengthList.removeRange(0, 1);

///刪除索引0-1,然后在進行替換刪除索引值

fixedLengthList.replaceRange(0, 1, [3,4]);

fixedLengthList.sublist(0);

fixedLengthList..sort((a, b) => a.compareTo(b));

fixedLengthList.setRange(0, 1, [3,4],0);

fixedLengthList.fillRange(0, 1,3);

///執行清除數據操作

fixedLengthList.clear();

3、contains 過濾重復?添加(int、double、bool、String)類型數據

1、int類型數組中插入重復數據

List listInts = [];

void addIntData(int addValue){

bool isContainer=listInts.contains(addValue);

if(!isContainer){

listInts.add(addValue);

}

print("數組長度${listInts.length}");

}

I/flutter (28028): 數組長度1

I/flutter (28028): 數組長度1

I/flutter (28028): 數組長度1

2、double類型數組中插入重復數據

List listDouble = [];

void addDoubleData(double addValue){

bool isContainer=listDouble.contains(addValue);

if(!isContainer){

listDouble.add(addValue);

}

print("數組長度${listDouble.length}");

}

I/flutter (28028): 數組長度1

I/flutter (28028): 數組長度1

I/flutter (28028): 數組長度1

I/flutter (28028): 數組長度1

3、String類型數組中插入重復數據

List listStrings = [];

void addStringData(String addValue){

bool isContainer=listStrings.contains(addValue);

if(!isContainer){

listStrings.add(addValue);

}

print("數組長度${listStrings.length}");

}

I/flutter (28028): 數組長度1

I/flutter (28028): 數組長度1

I/flutter (28028): 數組長度1

I/flutter (28028): 數組長度1

4、boolean類型數組插入重復數據

List listBool = [];

void addBoolData(bool addValue){

bool isContainer=listBool.contains(addValue);

if(!isContainer){

listBool.add(addValue);

}

print("數組長度${listBool.length}");

}

I/flutter (28028): 數組長度1

I/flutter (28028): 數組長度1

I/flutter (28028): 數組長度1

I/flutter (28028): 數組長度1

I/flutter (28028): 數組長度1

4、List對象去重

class A{

String a;

int b;

A(this.a, this.b);

}

1、要添加的對象A的每個值和數組里面存在的每個對象的值做比較?(效率低、適合少量數據去重)

List listAs = [];

void addAData(A addValue){

int length=listAs.length;

if(length==0){

listAs.add(addValue);

}else {

for (int i = 0; i < length; i++) {

A a = listAs[i];

if (a.a != addValue.a && a.b != addValue.b) {

listAs.add(addValue);

}

}

}

print("數組長度${listAs.length}");

}

2、List配合Set去除重復對象

List listAs = [];

Set setAs=new Set();

void addASData(A addValue){

if(listAs.length==0) {

listAs.add(addValue);

setAs.addAll(listAs);

}else{

listAs.add(addValue);

}

List list=setAs.toList();

print("數組長度${list.length}");

}

addASData(new A("a", 0));

I/flutter (10386): 數組長度1

I/flutter (10386): 數組長度1

I/flutter (10386): 數組長度1

I/flutter (10386): 數組長度1

I/flutter (10386): 數組長度1

I/flutter (10386): 數組長度1

參考:

到此這篇關于Flutter List數組避免插入重復數據的實現的文章就介紹到這了,更多相關Flutter List 重復插入內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

總結

以上是生活随笔為你收集整理的android 过滤数组中的重复元素,Flutter List数组避免插入重复数据的实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。