栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java集合框架总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java集合框架总结

集合体系结构
    单列集合 collection
       可重复list
           ArrayList linkedList
       不可重复set
          HashSet TreeSet
    双列集合 map
           HashMap
Collection 集合概述
    1.是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素
    2.JDK不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现
    创建Collection对象
    1.多态的方式
    2.具体的实现类ArrayList
import java.util.ArrayList;
import java.util.Collection;

public class day2collection集合概述和引用 {
    public static void main(String[] args) {
        Collection c = new ArrayList();
        //添加元素 :boolean add(E e)
        c.add("hello");
        c.add("world");
        c.add("java");
        System.out.println(c);
    }
}
集合常用方法
Collection集合常用方法
boolean add(E e) 添加元素
boolean remove(Object o) 从集合中移除指定的元素
void clear() 清空集合中的元素
boolean contains(Object o) 判断集合中是否包含指定元素
boolean isEmpty() 判断集合是否为空
int size() 集合的长度,也就是集合中元素的个数
alt+7快捷键打开一个窗口 能够看到类的信息
import java.util.ArrayList;
import java.util.Collection;

public class day3Collection集合常用方法 {
    public static void main(String[] args) {
        //创建集合对象
        Collection c = new ArrayList<>();
        //boolean add(E e) 添加元素
        
        c.add("hello");
        c.add("world");
        c.add("java");
        //boolean remove(Object o) 从集合中移除指定的元素
        System.out.println(c.remove("world"));
        System.out.println(c.remove("jaba"));
        //void clear() 清空集合中的元素
        c.clear();
        //boolean contains(Object o) 判断集合中是否包含指定元素
        System.out.println(c.contains("world"));
        //boolean isEmpty() 判断集合是否为空
        System.out.println(c.isEmpty());
        //int size() 集合的长度,也就是集合中元素的个数
        System.out.println(c.size());
        //输出集合对象
        System.out.println(c);
    }
}

Collection集合的遍历
Iterator: 迭代器,集合的专用遍历方式
 *Iterator iterator(): 返回此集合中元素的迭代器,通过集合的iterator()方法得到
*迭代器是通过集合的iterator()方法得到的,所以我们说他是依赖于集合而		存在的
Iterator中的常用方法
E next():返回迭代中的下一个元素
boolean hasNext(): 如果迭代具有更多元素,则返回true
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class day4Collection集合的遍历 {
    public static void main(String[] args) {
        //创建集合对象
        Collection c = new ArrayList<>();
        //添加元素
        c.add("hello");
        c.add("world");
        c.add("java");
        //Iterator iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
        Iterator it = c.iterator();
        
        
//        if (it.hasNext()){
//            System.out.println(it.next());
//        }if (it.hasNext()){
//            System.out.println(it.next());
//        }if (it.hasNext()){
//            System.out.println(it.next());
//        }if (it.hasNext()){
//            System.out.println(it.next());
//        }
        while(it.hasNext()){
//            System.out.println(it.next());
            String s = it.next();
            System.out.println(s);
        }
    }
}

集合使用步骤
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class day5集合使用步骤 {
    public static void main(String[] args) {
        Collection c = new ArrayList<>();
        c.add("hello");
        c.add("world");
        c.add("java");
        Iterator it = c.iterator();
        while(it.hasNext()){
            String s = it.next();
            System.out.println(s);
        }
    }
}
Collection存储学生对象并遍历

需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合

思路: 
①定义学生类 
②创建Collection对象
③创建学生对象
④把学生添加到集合 
⑤遍历集合(迭代器方式)
public class day6Collection存储学生对象并遍历 {
    public static void main(String[] args) {
        //创建Collection集合对象
        Collection c = new ArrayList<>();
        //创建学生对象
        day6Student s1 = new day6Student("杨要想",19);
        day6Student s2 = new day6Student("率秀气",18);
        day6Student s3 = new day6Student("张帅",20);
        //把学生添加到集合
        c.add(s1);
        c.add(s2);
        c.add(s3);
        //遍历集合(迭代器方法)
        Iterator it = c.iterator();
        while(it.hasNext()){
            day6Student s = it.next();
            System.out.println(s.getName() + "," + s.getAge());
        }
    }
}
List集合概述和特点
List集合概述
 ·有序集合(也称为序列),用户可以精准控制列表中每个元素的插入位置。用户可以	通过整数索引访问元素,并搜索列表中的元素。
·与Set集合不同,列表通常允许重复的元素

List集合特点
·有序:存储和取出的元素顺序一致
 ·可重复:存储的元素可以重复
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class day1List集合概述和特点 {
    public static void main(String[] args) {
        //创建集合元素
        List list = new ArrayList<>();
        //添加元素
        list.add("hello");
        list.add("world");
        list.add("java");
        list.add("world");
        //直接输出集合对象
        System.out.println(list);
        //遍历集合
        Iterator it = list.listIterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
    }
}
List集合特有方法
void add(int index,E element) 在此集合的指定位置插入指定的元素
E remove(int index) 删除指定索引处的元素,返回被删除的元素
E set(set index,E element) 修改指定索引处的元素,返回被修改的元素
E get(int index) 返回指定索引处的元素
import java.util.ArrayList;
import java.util.List;

public class day2List特有方法 {
    public static void main(String[] args) {
        //创建集合元素
        List list = new ArrayList<>();
        //添加元素
        list.add("hello");
        list.add("world");
        list.add("java");
        //void add(int index,E element) 在此集合的指定位置插入指定的元素
        list.add(1,"javaee");
        //list.add(11,"als") 越界异常
        //E remove(int index) 删除指定索引处的元素,返回被删除的元素
        list.remove(1);
        //E set(set index,E element) 修改指定索引处的元素,返回被修改的元素
        list.set(2,"lzy");
        //E get(int index) 返回指定索引处的元素
        System.out.println(list.get(1));
        //输出集合对象
        System.out.println(list);
        //遍历集合
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}

需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合

①定义学生类
②创建list对象
③创建学生对象
④把学生添加到集合
⑤遍历集合(迭代器方式,for循环方式)
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class day3List集合存储学生对象并遍历 {
    public static void main(String[] args) {
        //创建list集合对象
        List list  = new ArrayList<>();
        //创建学生对象
        day3Student s1 = new day3Student("张三",66);
        day3Student s2 = new day3Student("李四",96);
        day3Student s3 = new day3Student("王五",86);
        //把学生添加到集合
        list.add(s1);
        list.add(s2);
        list.add(s3);
        //遍历集合
        Iterator it = list.listIterator();
        while(it.hasNext()){
            day3Student s = it.next();
            System.out.println(s.getName() + "," + s.getAge());
        }
        for (int i = 0; i < list.size(); i++) {
            day3Student c = list .get(i);
            System.out.println(c.getName() + "," + c.getAge());
        }
    }
}

并发修改异常
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

//遍历集合 得到每一个元素 看有没有world这个元素 如果有 我就添加一个 javaee 元素
//ConcurrentModificationExceptionh 当不允许这样的修改时,可以通过检测到对象的并发修改的方法来抛出此异常

public class day4并发修改异常 {
    public static void main(String[] args) {
        //创建集合对象
        List list = new ArrayList<>();
        //添加元素
        list.add("hello");
        list.add("world");
        list.add("java");
        //遍历集合 得到每一个元素 看有没有world这个元素 如果有 我就添加一个 javaee 元素
        Iterator it = list.iterator();
        while(it.hasNext()){
            String s = it.next();
            if (s.equals("world")){
                list.add("javaee");
            }
        }
//        for (int i = 0; i < list.size(); i++) {
//            String s = list.get(i);
//            if (s.equals("world")){
//                list.add("javaee");
//            }
//        }
        //输出集合对象
        System.out.println(list);
    }
}

ListIterator:列表迭代器
·通过LIst集合的listIterator()方法得到,所以说它是List集合特有的迭代器
·用于允许程序员沿任一方向遍历列表的的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置
ListIterator中的常用方法
·E next():返回迭代中的下一个元素
·boolean hasNext():如果迭代具有更多元素,则返回true
·E previous():返回列表中的上一元素
·boolean hasPrevious():如果此迭代器在相反方向遍历列表时具有更多元素,则返回true
·void add(E e):将指定的元素插入列表`
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class day5列表迭代器 {
    public static void main(String[] args) {
        //创建集合对象
        List list = new ArrayList<>();
        //添加元素
        list.add("hello");
        list.add("world");
        list.add("java");
        //通过list集合的listiterator()方法得到
//        ListIterator lit = list.listIterator();
//        while (lit.hasNext()){
//            String s = lit.next();
//            System.out.println(s);
//        }
//        while (lit.hasPrevious()){
//            String s = lit.previous();
//            System.out.println(s);
//        }
        //获取列表迭代器
        ListIterator it = list.listIterator();
        while(it.hasNext()){
            String s= it.next();
            if (s.equals("world")){
                it.add("javaee");
            }
        }
        System.out.println(list);
    }
}

增强for循环
//增强for:简化数组和Collection集合的遍历
//·实现Iterator接口的类允许其对象成为增强型for语句的目标
//·它是JDK5之后出现的,其内部原理是一个Iterator迭代器

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

//增强for的格式
//·格式:
//  for(元素数据类型变量名:数组或者Collection集合){
//      在此处使用变量即可,该变量就是元素
//  }
public class day6增强for循环 {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        for (int i :arr){
            System.out.println(i);
        }
        System.out.println("--------------------");
        String[] strArray = {"hello","world","java"};
        for (String s:strArray){
            System.out.println(s);
        }
        System.out.println("--------------------");
        List list = new ArrayList<>();
        list.add("hello");
        list.add("world");
        list.add("java");
        for (String s:list){
            System.out.println(s);
        }
        //内部原理是一个Iterator迭代器
        for (String s:list){
            if (s.equals("world")){
                list.add("javaee");
            }
        }
        System.out.println("--------------------");
        Iterator it = list.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
        System.out.println("-------------------");
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        System.out.println("-------------------");

    }
}

List集合的子类特点
List集合常用子类:ArrayList,linkedList
ArrayList:底层数据结构是数组,查询快,增删慢
linkedList:底层数据结构是链表,查询慢,增删快
import java.util.ArrayList;
import java.util.Iterator;
import java.util.linkedList;
import java.util.List;

public class day9List集合的子类特点 {
    public static void main(String[] args) {
        List array = new ArrayList<>();
        array.add("hello");
        array.add("world");
        array.add("java");
        //迭代器
        Iterator it = array.listIterator();
        while(it.hasNext()){
            String s = it.next();
            System.out.println(s);
        }
        //for循环
        for (int i = 0; i < array.size(); i++) {
            System.out.println(array.get(i));
        }
        //增强for
        for(String s : array){
            System.out.println(s);
        }
        System.out.println("----------------");
        List linkedstring = new linkedList<>();
        linkedstring.add("hello");
        linkedstring.add("world");
        linkedstring.add("java");
        //增强for
        for(String s : linkedstring){
            System.out.println(s);
        }
    }
}

linkedList集合的特有功能
public void addFirst(E e) 在该列表开头插入指定的元素
public void addLast(E e) 将制定元素追加到此列表的末尾
public E getFirst() 返回此列表中的第一个元素
public E getLast() 返回此列表中的最后一个元素
public E removaFirst() 从此列表中删除并返回第一个元素
public E removaLast() 从此列表中删除并返回最后一个元素
import java.util.linkedList;

public class day10linkedList集合的特有功能 {
    public static void main(String[] args) {
        //创建集合对象
        linkedList linkedlist = new linkedList<>();

        linkedlist.add("hello");
        linkedlist.add("world");
        linkedlist.add("java");
        //public void addFirst(E e) 在该列表开头插入指定的元素
        linkedlist.addFirst("javase");
        //public void addLast(E e) 将制定元素追加到此列表的末尾
        linkedlist.addLast("javaee");
        //public E getFirst() 返回此列表中的第一个元素
        System.out.println(linkedlist.getFirst());
        //public E getLast() 返回此列表中的最后一个元素
        System.out.println(linkedlist.getLast());
        //public E removaFirst() 从此列表中删除并返回第一个元素
        System.out.println(linkedlist.removeFirst());
        //public E removaLast() 从此列表中删除并返回最后一个元素
        System.out.println(linkedlist.removeLast());
        System.out.println(linkedlist);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/361181.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号