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)
,要求返回 s
在 al
里面第一次出现的索引,如果 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;
}
}