package cn.kgc.mybatisdemo.util;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Demo1 {
public static void main(String[] args) {
String [] num = {"Java", "C++", "Php","Python", "C#", "Python", "C++", "Java"};
//通过list去重
List<String> list = new ArrayList<String>();
for (int i=0; i<num.length; i++) {
if(!list.contains(num[i])) {
list.add(num[i]);
}
}
//返回一个包含所有对象的指定类型的数组
String[] newArrStr = list.toArray(new String[1]);
System.out.println(Arrays.toString(newArrStr));
}
}
java中list集合中contains()的用法为:
public boolean list.contains(Object o)
当前列表若包含某元素,返回结果为true, 若不包含该元素,返回结果为false。
contains()方法实现的具体细节为:
当list调用contains()方法并传递一个元素时,会执行遍历,逐个对比item是否等于该元素,当遍历结束后,如果还没有一个元素等于该元素的值,则返回false, 否则返回true
这是扩展:
List的contains(obj)方法
实际上,List调用contains(Object obj)方法时,会遍历List中的每一个元素,然后再调用每个元素的equals()方法去跟contains()方法中的参数进行比较,如果有一个元素的equals()方法返回true则contains()方法返回true,否则所有equals()方法都不返回true,则ontains()方法则返回false。因此,重写了Course类的equals()方法,否则,testListContains()方法的第二条输出为false。
最后把list转换成数组,然后输出;