首页 > 其他分享 >第一章 集合框架和泛型(一)

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

时间:2024-09-18 09:20:49浏览次数:12  
标签:元素 Object System 第一章 集合 add 泛型 println out

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( 元素的数据类型 变量名 : 数组名/集合名 ){

​ }

标签:元素,Object,System,第一章,集合,add,泛型,println,out
From: https://blog.csdn.net/ke67855523/article/details/142205529

相关文章

  • 说⼀说你对泛型的理解
    1.是什么        泛型(Generics)是Java5中引入的一个特性,它提供了编译时类型安全检查的机制,允许在编码阶段指定集合的元素类型或者方法的参数类型。使用泛型可以增强程序的可读性和安全性,避免在运行时出现类型转换异常。1.泛型的定义泛型是通过类型参数来实现的,这......
  • day03 - Java集合和常用类
    第一章Collection集合1.Collection概述集合:java中提供的一种容器,可以用来存储多个数据集合和数组既然都是容器,它们有啥区别呢?数组的长度是固定的。集合的长度是不固定的。集合可以随时增加元素,其大小也随之增加数组中存储的是同一类型的元素,可以存储基本数据类型值。......
  • go使用泛型实现接口通用结构体转换
    packagepagemodelimport("gitee.com/leijmdas/gobase/goconfig/common/base/basedto""gitee.com/leijmdas/gobase/goconfig/common/base/baseiface""gitee.com/leijmdas/gobase/goconfig/common/base/jsonutils""......
  • 60.《Java集合框架-List-Set-Map》
    此篇所写不知道你们是否在网页开发的时候当看到要写Map集合什么HashMap之类的突然蒙了虽然之前学过突然让你调用方法懵了所以在此总结一下以备后需对比数组可存储任意类型对象且存储长度是可以变的集合类乃内存层面对数据进行存储数据库是持久层断电后仍长期存在......
  • 泛型
    泛型是一种类型参数。将数据的类型,当做一个参数。1.泛型的作用在创建集合对象的时候,限定集合存储元素的类型;在编译的时候,就进行类型检查;2.泛型的使用规则如果不指定泛型,默认是Object类型泛型擦除:泛型应用于代码编译期,程序运行的后,泛型就被擦除了。即运行期,泛型被擦......
  • Java【集合】
    一、集合的概述集合建立在数组基础上,主要位于java.util包中,用来存储Java类对象,并且可以实现各种数据结构。集合大小可以改变,可以存放不同数据类型数据。集合不能存放基本类型数据,只能存放引用数据类型数据。集合不仅可以方便地存放数据,而且提供了添加、读取和删除数据等实用......
  • java基础之集合框架 ArrayList和LinkedList的使用
     ArrayList和LinkedList的使用Link是接口,ArrayList和LinkedList是去实现这个接口,List接口没有LinkedList类的方法,如果需要LinkedList的方法就不能写成Listlist=newLinkedList(),只能LinkedListlist=newLinkedList()1.ArrayList的使用        1.1.ArrayList......
  • 洛谷题单指南-分治与倍增-P2415 集合求和
    原题链接:https://www.luogu.com.cn/problem/P2415题意解读:计算集合所有子集中元素之和。解题思路:集合的特性:互异性,元素各不相同来看样例:23,可以组成的子集有空23232和3都出现2次再比如:123,可以组成的子集有空12312 13231231,2,3各出现4次由于在集合中......
  • JavaSE--集合总览04:集合的并发修改问题,Collections类的操作以及可变参数
    一.集合的并发修改问题关于集合的并发修改问题---就是把集合内包含某个值的元素都删了以下是一个实例:要求删除含"李"的元素分析:大家都知道可以遍历集合的方式-----迭代(Iterator),增强型for循环,普通for循环,Lambda简化。前面01有关于遍历的详细介绍喔快速入口:http://t.csdnim......
  • 【数据库系统实用教程】 第一章 数据库系统概述
    1.1基本概念1.数据什么是数据:数据是现实世界中客体在计算机中的抽象表示,具体的说,它是一种存储于计算机内的符号串。数据的特性:(1)数据表现形式的多样性(2)数据的可构造性:数据分为结构化数据、半结构化数据和非结构化数据。结构化数据有型(type)和值(value)之分。结构化数......