GVKun编程网logo

list删除null(list删除null值)

13

这篇文章主要围绕list删除null和list删除null值展开,旨在为您提供一份详细的参考资料。我们将全面介绍list删除null的优缺点,解答list删除null值的相关问题,同时也会为您带来An

这篇文章主要围绕list删除nulllist删除null值展开,旨在为您提供一份详细的参考资料。我们将全面介绍list删除null的优缺点,解答list删除null值的相关问题,同时也会为您带来Android List删除重复数据、ArrayList中删除null元素效率比较、ArrayList删除添加问题、C#实现Json序列化删除null值的方法实例的实用方法。

本文目录一览:

list删除null(list删除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删除重复数据

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元素效率比较

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删除添加问题

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值的方法实例

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删除nulllist删除null值的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Android List删除重复数据、ArrayList中删除null元素效率比较、ArrayList删除添加问题、C#实现Json序列化删除null值的方法实例的相关信息,请在本站寻找。

本文标签: