java集合框架 Collection集合及遍历

  • Post author:
  • Post category:java




java集合框架


java.util.Collection



java.util.Map

是两个独立的接口

在这里插入图片描述



Collection集合及遍历

三种方法遍历集合Collection

  1. Iterator
  2. for
  3. foreach




    f

    o

    r

    e

    a

    c

    h

    foreach






    f


    o


    r


    e


    a


    c


    h





    本质还是用的迭代器遍历

package cn.itcast.day01.Collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/**
*Boolean add()方法可以在集合中添加一个元素
*/

/**
 * Boolean hasNext()方法可以判断下一个元素是否存在
 * E next()方法可以得到下一个元素
 */

public class CollectionTest {

    public static void main(String[] args) {
        //<E> E可以是包装类、自定义类型、引用类型
        Collection<String> col = new ArrayList<>();
        col.add("xxx");
        col.add("yyy");
        col.add("zzz");
        //迭代器遍历
        Iterator it = col.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
        System.out.println("====================");
        //for循环遍历
        for(Iterator it2=col.iterator(); it2.hasNext(); ){
            System.out.println(it2.next());
        }
        System.out.println("====================");
        //foreach循环遍历
        for(Object it3:col){
            System.out.println(it3);
        }
    }
}

在这里插入图片描述

Collection常用方法

public Boolean add()方法可以在集合中添加一个元素
public Boolean remove()方法可以移除一个元素
public Boolean isEmpty()方法可以判断集合是否为空
public int size() 返回集合元素个数
public Boolean contains()方法可以判断集合中是否有这个元素
public Object[] toArray(): 把集合中的元素,存储到数组中。

Iterator常用方法

public Boolean hasNext()方法可以判断下一个元素是否存在
public E next()方法可以得到下一个元素
package cn.itcast.day01.Collection;

import com.sun.org.apache.xpath.internal.operations.Bool;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/**
 * public Boolean add()方法可以在集合中添加一个元素
 * public Boolean remove()方法可以移除一个元素
 * public Boolean isEmpty()方法可以判断集合是否为空
 * public int size() 返回集合元素个数
 * public Boolean contains()方法可以判断集合中是否有这个元素
 * public Object[] toArray(): 把集合中的元素,存储到数组中。
*/

/**
 * Boolean hasNext()方法可以判断下一个元素是否存在
 * E next()方法可以得到下一个元素
 */

public class CollectionTest {

    public static void main(String[] args) {
        //<E> E可以是包装类、自定义类型、引用类型
        Collection<String> col = new ArrayList<>();
        col.add("xxx");
        col.add("yyy");
        col.add("zzz");
        Boolean t = col.remove("xxx");
        System.out.println(col);
        System.out.println("删除?"+t);
        System.out.println("集合是否为空?"+col.isEmpty());
        System.out.println("集合元素有"+col.size()+"个");
        System.out.println("是否还有xxx?"+col.contains("xxx"));
        System.out.println("=============");
        Object []ojs = col.toArray();
        for(Object e:ojs){
            System.out.println(e);
        }
    }
}

在这里插入图片描述



泛型方法(泛型类)的定义与使用

使用泛型方法

package JAVA_Test5;

import java.util.Arrays;

public class Collection {
    //泛型的使用方法
    //在函数中使用
    public static <T> void changePosion(T []array, int i, int j){
        T temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }

    public static void main(String[] args) {
        //第一种方法,定义泛型方法
        String []strs = {"1","2","3"};
        /*changePosion(strs,1,2);
        System.out.println(Arrays.toString(strs));*/
        Integer []ints = {1,2,3,4};
        /*changePosion(ints,1,2);
        System.out.println(Arrays.toString(ints));*/
        //第二种定义泛型类
        ArrayUtils<String> a1 = new ArrayUtils<>();
        a1.reverse(strs);
        System.out.println(Arrays.toString(strs));
        ArrayUtils<Integer> a2 = new ArrayUtils<>();
        a2.ChangePosition(ints,1,3);
        System.out.println(Arrays.toString(ints));
    }
}

泛型类

package JAVA_Test5;

public class ArrayUtils<T> {
    public void ChangePosition(T[] array,int i,int j){
        T temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
    public void reverse(T[] array){
        for(int i=0,j=array.length-1; i<j; ++i,--j){
            T temp = array[i];
            array[i] = array[j];
            array[j] = temp;
        }
    }

}

在这里插入图片描述



List的两种使用

package JAVA_Test5;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ListForUse {

    public static void main(String[] args) {
        List<String> stringList = new ArrayList<>();
        stringList.add("hello");
        //stringList.add(1);报错,因为只能add进去String类型的
        stringList.add("java");
        Object[] s = stringList.toArray();
        System.out.println(Arrays.toString(s));

        //不使用泛型
        List l = new ArrayList<>();
        l.add("hello");
        l.add(2020);  //不进行类型检验
        l.add(2020.996);
        Object []s2 = l.toArray();
        System.out.println(Arrays.toString(s2));
        System.out.println(l.size());
    }
}

在这里插入图片描述



List集合内嵌Map集合表示二维表数据的示例程序

package JAVA_Test5;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

//List集合内嵌Map集合表示二维表数据的示例程序(MapInList.java)
public class MapInList {
    public static void main(String[] args) {
        List<Map<String,Object>> mapList = new ArrayList<>();
        Map<String,Object> person1 = new HashMap<>();
        person1.put("id",1);
        person1.put("name","蜘蛛侠");
        person1.put("function","能爬树");
        person1.put("power",1000);

        Map<String,Object> person2 = new HashMap<>();
        person2.put("id",2);
        person2.put("name","钢铁侠");
        person2.put("function","会打铁");
        person2.put("power",2000);

        mapList.add(person1);
        mapList.add(person2);

        //遍历
        for(int i=0; i<mapList.size(); ++i){
            System.out.println(mapList.get(i));
        }
    }
}



版权声明:本文为qq_26139541原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。