第一章 集合框架和泛型(一)

java 集合框架和泛型(一)

一、集合框架

如果并不知道程序运行时会需要多少对象,或者需要 更复杂方式存储对象——可以使用Java集合框架。
在这里插入图片描述

二、包含的内容

  • Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中。
  • Collection 接口存储一组不唯一,无序的对象。
  • List 接口存储一组不唯一,有序(插入顺序)的对象。
  • Set 接口存储一组唯一**,**无序的对象。
  • Map 接口存储一组键值对象,提供*key到value的映射

三、List接口的实现类

1.ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高

2.LinkedList采用链表存储方式,插入、删除元素时效率比较高

四、ArrayList常用方法

方法名说明
boolean add(Object o)在列表的末尾顺序添加元素,起始索引位置从0开始
void add(int index,Object o)在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数之间
int size()返回列表中的元素个数
Object get(int index)返回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换
boolean contains(Object o)判断列表中是否存在指定元素
boolean remove(Object o)从列表中删除元素
Object remove(int index)从列表中删除指定位置元素,起始索引位置从0开始
public static void main(String[] args) {
        ArrayList p = new ArrayList<>();
    	//添加数据
        p.add("张三");
        p.add("李四");
        p.add("王五");
    	//输出数据
        System.out.println(Arrays.toString(p.toArray()));
        System.out.println("————————————————————————");
    	//指定插入数据
        p.add(1,"裴七");
        System.out.println(Arrays.toString(p.toArray()));
        System.out.println("————————————————————————");
    	//删除指定数据
        p.remove(1);
        System.out.println(Arrays.toString(p.toArray()));
        System.out.println("————————————————————————");
    	//循环输出
        for (Object i:p){
            System.out.println("------"+i);
        }
        for (int i = 0;i<p.size();i++){
            System.out.println("------"+p.get(i));
        }
        System.out.println("————————————————————————");
    	//判断指定值是否在集合中
        boolean b = p.contains("张三");
        System.out.println(b);
    }

五、LinkedList常用方法

方法名说明
void addFirst(Object o)在列表的首部添加元素
void addLast(Object o)在列表的末尾添加元素
Object getFirst()返回列表中的第一个元素
Object getLast()返回列表中的最后一个元素
Object removeFirst()删除并返回列表中的第一个元素
Object removeLast()删除并返回列表中的最后一个元素

六、Set接口

1.Set接口存储一组唯一,无序的对象

2.HashSet是Set接口常用的实现类

3.Set中存放对象的引用

Set set=new HashSet();
String s1=new String("java");
String s2=s1;
String s3=new String("JAVA");
set.add(s1);
set.add(s2);
set.add(s3);
System.out.println(set.size());

Set接口如何判断加入对象是否已经存在呢?

采用对象的equals()方法比较两个对象是否相等

Set set=new HashSet();
String s1=new String("java");
String s2=s1;
String s3=new String ("java");
set.add(s1);
set.add(s2);
set.add(s3);
System.out.println(set.size());

HashSet是Set接口常用的实现类

Set接口不存在get()方法,通过迭代器增强for循环来进行。

Set newsTitleSet = new HashSet();
NewTitle car = new NewTitle(1, "汽车", "管理员");
//增加元素
newsTitleSet.add(car);
//获取元素个数
System.out.println("新闻标题数目为:" + newsTitleList.size() + "条");

七、迭代器Iterator

当集合内容很大时使用迭代器(效率较高)

  • 方法1:通过迭代器Iterator实现遍历

  • 获取Iterator :Collection 接口的iterator()方法

    • Iterator it = sets.iterator();
  • Iterator的方法

    • boolean hasNext(): 判断是否存在另一个可访问的元素

    • Object next():

      返回要访问的下一个元素

      • while (it.hasNext()) {
        //判断下一个是否有值
        System.out.println(it.next());
        }
  • 方法2:增强型for循环

for( 元素的数据类型 变量名 : 数组名/集合名 ){

ext()) {
> //判断下一个是否有值
> System.out.println(it.next());
> }

  • 方法2:增强型for循环

for( 元素的数据类型 变量名 : 数组名/集合名 ){

​ }

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值