1、统计元素出现次数

统计集合中指定元素出现的次数,如 a : 2, b : 2, c : 1, xxx : 0。

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

/** * 统计元素出现的个数 */
public class EleCount {
   
    public static void main(String[] args) {
   
        Collection<String> list=new ArrayList<>();
        list.add("a");
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("c");
        list.add("fff");
        //对ArrayList的元素去重
        HashSet<String> hashSet=new HashSet<>(list);
        for (String s:hashSet) {
   
            System.out.println(s+":"+count(list,s));
        }
    }

    /** * 统计元素的个数 * @param list:传入的集合 * @param s:指定的元素 * @return count:返回指定元素的个数 */
    public static   int count(Collection<String> list,String s){
   
        //定义计数器,初始化为0
        int count=0;
		//增强for遍历集合
        for (String s1 :list) {
   
            if (s1.equals(s)){
   
                count++;
            }
        }
        return count;
    }
}

2、Collection集合 数组转集合

定义一个方法,要求此方法把 int 数组转成存有相同元素的集合(集合里面的元素是 Integer),并返回。

import java.util.ArrayList;

/** * 数组转集合 */
public class ArrayToCollection {
   
    public static void main(String[] args) {
   
        //定义 int 数组
        int[] arr={
   1,2,3,4,5,6};
        ArrayList<Integer> list=toCollection(arr);

        System.out.println(list);
    }
    public static ArrayList<Integer> toCollection(int[] arr){
   
        //定义集合
        ArrayList<Integer> list=new ArrayList<>();
        //遍历数组,把元素依次添加到集合中
        for (int a : arr) {
   
            list.add(a);
        }
        return list;
    }
}

小拓展

点击进一步了解 数组转换成List集合 的方法

3、Collection集合 集合转数组

定义一个集合,并把集合转成存有相同元素的数组,并将结果输出在控制台。(可以使用Object[]数组类型接收转换的数组)

import java.util.ArrayList;

/** * 集合转数组 */
public class CollectionToArray {
   
    public static void main(String[] args) {
   
        //定义集合,添加数据
        ArrayList<Integer> list = new ArrayList<>();
        list.add(100);
        list.add(200);
        list.add(300);
        //Object[] toArray()转换成一个Object数组
        Object[] obj =  list.toArray();
        // 遍历数组
        for (int i = 0; i < obj.length; i++) {
   
            System.out.println(obj[i]);
        }
    }
}

小拓展:

集合转数组的方法:

  • Object[] toArray() 以正确的顺序(从第一个到最后一个元素〉返回一个包含此列表中所有元素的数组。
  • <T>T[] toArray(T[] a) 以正确的顺序返回一个包含此列表中所有元素的数组(从第一个到最后一个元素); 返回的数组的运行时类型是指定数组的运行时类型。

查看API可知有这两个方法可以帮助我们很容易地将集合转换为数组。

其中第二个方法是比较常用的,我们可以传入一个指定类型的数组,该数组元素类型与集合元素类型一致。

返回值是转化后的数组,该数组会保留集合中的所有元素。

4、contains() 方法使用

定义一个方法 listTest(ArrayList<String> al, String s) ,要求使用 contains() 方法判断 al 集合里面是否包含 s

import java.util.ArrayList;

/** * contains()方法使用 */
public class ContainsCase {
   
    public static void main(String[] args) {
   
        //定义集合,添加数据
        ArrayList<String> list = new ArrayList<>();
        list.add("zhangsan");
        list.add("jiangqi");
        list.add("lisi");
        System.out.println(listTest(list,"lisi"));

    }
    public static boolean  listTest(ArrayList<String> al, String s){
   
        // 判断s是否在集合中存在,存在返回true,不存在返回false
        if (al.contains(s)){
   
            return true;
        }
        return false;
    }
}

5、isEmpty() 方法的使用

定义一个方法 listTest(ArrayList<String> al), 要求使用 isEmpty() 判断 al 里面是否有元素。

import java.util.ArrayList;

/** * isEmpty()方法使用 */
public class IsEmptyCase {
   
    public static void main(String[] args) {
   
        //定义集合,添加数据
        ArrayList<String> list = new ArrayList<>();
        list.add("zhangsan");
        System.out.println(listTest(list));

    }
    public static boolean  listTest(ArrayList<String> al){
   
        // 判断s是否在集合中存在,存在返回true,不存在返回false
        if (al.isEmpty()){
   
            return true;
        }
        return false;
    }
}

6、返回首次出现索引

定义一个方法 listTest(ArrayList<Integer> al, Integer s),要求返回 sal 里面第一次出现的索引,如果 s 没出现过返回-1。

import java.util.ArrayList;

/** * 返回首次出现索引 */
public class ReturnIndex {
   
    public static void main(String[] args) {
   
        //定义集合,添加数据
        ArrayList<Integer> list = new ArrayList<>();
        list.add(100);
        list.add(200);
        list.add(300);
        list.add(200);
        System.out.println(listTest(list,200));
    }
    public static int listTest(ArrayList<Integer> al, Integer s) {
   
        for (int i=0;i<al.size();i++) {
   
            if (al.get(i).equals(s)){
   
                return i;
            }
        }
        return -1;
    }
}