这篇文章主要围绕list删除null和list删除null值展开,旨在为您提供一份详细的参考资料。我们将全面介绍list删除null的优缺点,解答list删除null值的相关问题,同时也会为您带来An
这篇文章主要围绕list删除null和list删除null值展开,旨在为您提供一份详细的参考资料。我们将全面介绍list删除null的优缺点,解答list删除null值的相关问题,同时也会为您带来Android List删除重复数据、ArrayList中删除null元素效率比较、ArrayList删除添加问题、C#实现Json序列化删除null值的方法实例的实用方法。
本文目录一览:- list删除null(list删除null值)
- Android List删除重复数据
- ArrayList中删除null元素效率比较
- ArrayList删除添加问题
- C#实现Json序列化删除null值的方法实例
list删除null(list删除null值)
public void setDiskIds(List<String> diskIds) {
//去掉所有null
diskIds.removeAll(Collections.singleton(null));
diskIds.removeAll(Collections.singleton(""));
this.diskIds = diskIds;
}
Android List删除重复数据
1、通过循环进行删除
public static void removeDuplicate(List list) { for ( int i = 0 ; i < list.size() - 1 ; i ++ ) { for ( int j = list.size() - 1 ; j > i; j -- ) { if (list.get(j).equals(list.get(i))) { list.remove(j); } } } System.out.println(list); }
2、通过HashSet删除
public static void removeDuplicate(List list) { HashSet h = new HashSet(list); list.clear(); list.addAll(h); System.out.println(list); }
3、删除重复元素,并保持顺序。(我没试)
public static void removeDuplicateWithOrder(List list) { Set set = new HashSet(); List newList = new ArrayList(); for (Iterator iter = list.iterator(); iter.hasNext();) { Object element = iter.next(); if (set.add(element)) newList.add(element); } list.clear(); list.addAll(newList); System.out.println( " remove duplicate " + list); }
4、定义一个方法,调用即可。
publi List<String> getNewList(List<String> li){ List<String> list = new ArrayList<String>(); for(int i=0; i<li.size(); i++){ String str = li.get(i); //获取传入集合对象的每一个元素 if(!list.contains(str)){ //查看新集合中是否有指定的元素,如果没有则加入 list.add(str); } } return list; //返回集合 } public class Test{ public static void main(String[] args){ ArrayList<String> arr = new ArrayList<String>(); arr.add("aaa"); arr.add("bbb"); arr.add("aaa"); arr.add("ccc"); arr = getNewList(arr); //方法去重 System.out.println(arr); } }
ArrayList中删除null元素效率比较
package test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
public class TestList {
static final int size = 1000000;
public static void main(String[] args) {
List<Integer> linkedList = new LinkedList<Integer>();
List<Integer> arrayList = new ArrayList<Integer>();
long startTime;
long endTime;
Iterator<Integer> iterator;
//添加数据
for (int i = 0; i < size; i++) {
int value = (int) (Math.random() * 1000);
if (value == 0) {
linkedList.add(null);
} else {
linkedList.add(value);
}
}
arrayList.addAll(linkedList);
//采用倒叙方法移除空元素
arrayList.clear();
arrayList.addAll(linkedList);
startTime = System.currentTimeMillis();
for (int i = arrayList.size() - 1; i >= 0; i--) {
if (arrayList.get(i) == null) {
arrayList.remove(i);
}
}
endTime = System.currentTimeMillis();
System.out.println("倒叙方法移除ArrayList中null 耗时" + (endTime - startTime) + "ms, 剩余数据" + arrayList.size() + "个");
arrayList.clear();
arrayList.addAll(linkedList);
int len = arrayList.size();
startTime = System.currentTimeMillis();
for (int i = 0; i < len; i++) {
if (arrayList.get(i) == null) {
arrayList.remove(i);
i--;
len--;
}
}
endTime = System.currentTimeMillis();
System.out.println("正序方法移除ArrayList中null 耗时" + (endTime - startTime) + "ms, 剩余数据" + arrayList.size() + "个");
arrayList.clear();
arrayList.addAll(linkedList);
startTime = System.currentTimeMillis();
arrayList.removeAll(Collections.singleton(null));
endTime = System.currentTimeMillis();
System.out.println("Collections方法移除ArrayList中null 耗时" + (endTime - startTime) + "ms, 剩余数据" + arrayList.size() + "个");
arrayList.clear();
arrayList.addAll(linkedList);
startTime = System.currentTimeMillis();
iterator = arrayList.iterator();
while (iterator.hasNext()) {
Integer valueInteger = iterator.next();
if (valueInteger == null) {
iterator.remove();
}
}
endTime = System.currentTimeMillis();
System.out.println("迭代器方法移除ArrayList中null 耗时" + (endTime - startTime) + "ms, 剩余数据" + arrayList.size() + "个");
startTime = System.currentTimeMillis();
iterator = linkedList.iterator();
while (iterator.hasNext()) {
Integer valueInteger = iterator.next();
if (valueInteger == null) {
iterator.remove();
}
}
endTime = System.currentTimeMillis();
System.out.println("迭代器方法移除LinkedList中null 耗时" + (endTime - startTime) + "ms, 剩余数据" + arrayList.size() + "个");
}
}
结果(跟List中null元素个数有关):
倒叙方法移除ArrayList中null 耗时126ms, 剩余数据998946个
正序方法移除ArrayList中null 耗时122ms, 剩余数据998946个
Collections方法移除ArrayList中null 耗时13ms, 剩余数据998946个
迭代器方法移除ArrayList中null 耗时131ms, 剩余数据998946个
迭代器方法移除LinkedList中null 耗时12ms, 剩余数据998946个
ArrayList删除添加问题
要求要每次循环后讲第一位元素移动到最后,一次类推
import java.util.ArrayList; import java.util.List; public class BBB { /** * @param args */ public static void main(String[] args) { Test2(); } public static void Test2() { List<Integer> data = new ArrayList<Integer>(); data.add(0); data.add(1); data.add(2); data.add(3); data.add(4); data.add(5); data.add(6); System.out.println(data.toString()); for (int i = 0; i < data.size(); i++) { data.add(data.get(i)); data.remove(data.get(i)); } System.out.println(data.toString()); for (int i = 0; i < data.size(); i++) { data.add(data.get(i)); data.remove(data.get(i)); } System.out.println(data.toString()); } }
输出结果为:
[0, 1, 2, 3, 4, 5, 6] [1, 3, 5, 0, 4, 2, 6] [3, 0, 2, 1, 4, 5, 6]
为何0不是被添加再了最后,
C#实现Json序列化删除null值的方法实例
要将一个对象序列化,可是如果对象的属性为null的时候,我们想将属性为null的都去掉,怎么处理呢?其实方法很简单的,下面就跟随小编一起学习C#中 Json 序列化去掉null值的方法吧要将一个对象序列化,可是如果对象的属性为null的时候,我们想将属性为null的都去掉。
在这里我使用Newtonsoft.Json.dll
记录一下序列化以及反序列化
json字符串转对象
Model model=JsonConvert.DeserializeObject<Model>(val);
将对象转化为json格式字符串
string jsonString = JsonConvert.SerializeObject(obj);
那么如何序列化为json时过滤掉NULL呢??
var jsonSetting = new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore}; var json = JsonConvert.SerializeObject(data, Formatting.Indented, jsonSetting);
直接这样JsonConvert.SerializeObject(obj);
序列化结果
MemberQuery: { PhoneNumber: 13222222222, Name: test, MF: 女, BirthDate: 01/01/2017, MaritalStatus: null, Country: null }
过滤掉NULL序列化结果:
MemberQuery: { PhoneNumber: 13222222222, Name: test, MF: 女, BirthDate: 01/01/2017 }
总结
关于list删除null和list删除null值的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Android List删除重复数据、ArrayList中删除null元素效率比较、ArrayList删除添加问题、C#实现Json序列化删除null值的方法实例的相关信息,请在本站寻找。
本文标签: