JAVA数组去重实用方法

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转换成数组,然后输出;

发布了6 篇原创文章 · 获赞 2 · 访问量 584

猜你喜欢

转载自blog.csdn.net/weixin_44554142/article/details/97484292
今日推荐