二、关于集合

[java][基础]集合(二) 底层数据结构是哈希表存取无序不可以存储重复元素没有索引,不能使用普通for循环遍历Map集合概述interface Map K:键的类型;V:值的类型Map集合的特点双列集合,一个键对应一个值键不可以重复,值可以重复Map集合的基本使用//创建集合对象//V put(K key, V value) 将指定的值与该映射中的指定键相关联map.put("itheima001","林青霞");map.put("itheima002","张曼玉"); 阅读详情

1.集合

      

  a.为什么出现集合类?

             面向对象语言对事物的体现都是以对象的形式,
             所以为了方便的多个对象操作,就对对象进行存储,
             集合就是对象最常用的一种方式

  b.数组和集合类都是容器,有何不同?

            数组虽然也可以放存储对象,但长度是固定的,
            集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象。

  c.集合类的特点

           集合只用于存储对象,集合长度是可变的,
           集合可以存储不同类型的对象

  d.ArrayList和LinkedList的区别:

           1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
           2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。

           3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。



2.泛型

构造方法中使用泛型,多个泛型,通配符,泛型方法,泛型数组

public class Person<E,V> {
	private E pid;
	private String pname;
	
	private V money[];
	
	public V[] getMoney() {
		return money;
	}
	public void setMoney(V[] money) {
		this.money = money;
	}
	public E getPid() {
		return pid;
	}
	public void setPid(E pid) {
		this.pid = pid;
	}
	public String getPname() {
		return pname;
	}
	public void setPname(String pname) {
		this.pname = pname;
	}
}

public class TestFan {
	 public static void main(String[] args) {
		 Person<String, ?> person=new Person<String, Integer>();
		 
	 }
}


3.List

       a.ArrayList:数组结构,查询快,增删改慢
       b.LinkedList(特有方法):链表结构,查询慢,增删改快
       c.Vector:增删改查慢

package com.zking.test;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class TestList {
	public static void main(String[] args) {
//		List Set Map
		//List 
		//重复?可以重复
		//有序?有序
//		List<String> list=new ArrayList<String>();
//		list.add("A");
//		list.add("B");
//		list.add("C");
//		list.add("A");
//		System.out.println(list.size());
//		
//		for (String string : list) {
//			System.out.println(string);
//		}
		
		
		LinkedList<String> list=new LinkedList<String>();
		list.add("A");
		list.add("B");
		list.add("C");
		list.add("A");
		
		list.addFirst("头");
		list.addLast("尾");
		
		list.removeFirst();
		
		for (String string : list) {
			System.out.println(string);
		}
		
	}
}


4.Set

package com.zking.test;

import java.util.HashSet;
import java.util.TreeSet;

public class TestSet {
	public static void main(String[] args) {
		//Set
		//重复?不能添加重复
		//有序?无序(放进去的顺序和取出来的顺序不一样)
		HashSet<String> hashSet=new HashSet<String>();
		hashSet.add("A");
		hashSet.add("C");
		hashSet.add("B");
		hashSet.add(null);
		//HashSet可以加空值
		for (String string : hashSet) {
			System.out.println(string);
		}
		
		
		//TreeSet不可以加空值
//		TreeSet<String> treeSet=new TreeSet<String>();
//		treeSet.add("A");
//		treeSet.add("C");
//		treeSet.add("B");
//		treeSet.add(null);
//		for (String string : treeSet) {
//			System.out.println(string);
//		}
	}
}


5.Map(重点)

       a.HashMap  可以加空值(无序)
       b.HashTable  不能加空值(无序)
       c.TreeMap   可以加空值(有序)
       d.迭代Map(重点)

package com.zking.test;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

public class TestMap {
	//键值对
	public static void main(String[] args) {
		Map<String, Object> map=new HashMap<String, Object>();
		map.put("A", "AAAA");
		map.put("2", "2222");
		map.put("3", "3333");
		map.put("王", "大小王");
		
		//遍历
		//01.获取所有的键,再根据键获取值
//		Set<String> strings=map.keySet();
//		for (String string : strings) {
//			System.out.println(string+":"+map.get(string));
//		}
		
		//02.获取所有的值
//		Collection<Object> collection=map.values();
//		for (Object object : collection) {
//			System.out.println(object);
//		}
		
		//03.获取键和值(一个一个)
		Set<Entry<String, Object>> entries=map.entrySet();
		for (Entry<String, Object> entry : entries) {
			System.out.println(entry.getKey() + " " + entry.getValue());
		}
	}
}


6.Properties配置

      例子:利用Properties修改DBHelper读取

       a.首先在项目的 WebRoot-->WEB-INF-->lib路径里面导入(sqljdbc4.jar)数据库的jar包。

     

     b.在src目录下面写DBHelper类

package com.zking.util;

import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

import com.microsoft.sqlserver.jdbc.SQLServerDriver;

public class DBHelper {
       //SQLServerDriver
       public static void main(String[] args) {
		      Connection conn=getConn();
		      System.out.println(conn);
		      System.out.println(DRIVERCLASS);
		      close(conn, null, null);
       }
      
       
       private static String DRIVERCLASS;
       private static String URL;
       private static String UNAME;
       private static String UPWD;
       
       static{
    	           try {
				  FileInputStream fis=new FileInputStream("db.Properties");
				  Properties pro=new Properties();
				  pro.load(fis);
				  
				  DRIVERCLASS=pro.getProperty("DRIVERCLASS");
				  URL=pro.getProperty("URL");
				  UNAME=pro.getProperty("UNAME");
				  UPWD=pro.getProperty("UPWD");
				  
				  Class.forName(DRIVERCLASS);
			} catch (Exception e) {
				// TODO: handle exception
			}
       }
       
       public static Connection getConn(){
    	           try {
				 return DriverManager.getConnection(URL, UNAME, UPWD);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
		        }
		        return null;
       }
       
       
       public static void close(Connection conn,PreparedStatement ps,ResultSet rs){
    	           try {
				  if(conn!=null && !conn.isClosed()){
					    conn.close();
				  }
				  if(ps!=null){
					   ps.close();
				  }
				  if(rs!=null){
					   rs.close();
				  }
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
       }
       
          
       
}

     c.在项目下面WebRoot目录同级新建db.properties文件

DRIVERCLASS=com.microsoft.sqlserver.jdbc.SQLServerDriver
URL=jdbc:sqlserver://localhost:1433;databaseNAME=master
UNAME=sa
UPWD=123


     欢迎大家来指出我的不足O(∩_∩)O


java集合框架(二)——Map集合 Map集合称为双列集合,格式:{key1=value1,key2=value2,key3=value3,… 阅读详情

相关推荐

31、通用型二模糊集的集合运算解析

本文详细解析了通用型二模糊集(GT2 FS)的集合运算,包括并、交、补运算的计算方法及相关定理。通过示例和流程图清晰展示了运算过程,并比较了不同定理的适用条件和特点。文章还探讨了GT2 FS运算的实际应用考虑因素,为模糊系统的设计和分析提供了理论支持。

info6的博客 81

集合和数组的区别:

1.集合和数组都是容器: 1.数组定义完成并启动后,类型确定,长度固定。 2.在进行增删数据操作的时候,数组是不太适合的,增删数据都需要放弃原有数组或者移位。 2.数组适合场景: 当业务数据的个数是固定的,且都是同一批数据类型的时候,可以采取定义数组存储。 3.集合是java中存储对象数据的一种容器: 集合特点: 1、集合的大小不固定,启动后可以动态变化,类型也可以选择不固定。集合更像气球。 2、集合非常适合做元素的增删操作。 注意:集合中只能存储引用类型数据,如果要存储基本类型

Otada的博客 1481

JavaScript China城市联动

中国全城市的地址省,市,县 <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title></title> <script src="jquery.js"></script> <script src="json.js"></...

唯唯同学 2241

集合和数组的区别

数组和集合的区别

m0_53284765的博客 5337

LilyPad三色LED共阳极控制:从原理到Arduino编程实战

RGB LED作为可编程光源的核心组件,通过红、绿、蓝三原色的加色混合原理,能够生成丰富的色彩。其内部结构主要分为共阳极和共阴极两种类型,这决定了驱动电路的设计和编程逻辑。在电子织物和可穿戴设备领域,掌握RGB LED的控制技术对于实现动态光效和交互反馈至关重要。本文以LilyPad三色LED为例,深入解析其共阳极特性,并详细演示如何结合Arduino进行PWM编程,从而精准控制颜色与亮度,为智能服装、互动艺术装置等项目提供可靠的照明解决方案。

weixin_30237719的博客 603

通过EMIF接口实现FPGA与DSP的高速连接(方法)

请注意,具体的连接细节和步骤可能会根据所使用的FPGA和DSP型号以及特定的应用需求而有所不同。开发DSP和FPGA上的软件,以实现数据交换和处理。根据系统的具体需求,对FPGA和DSP的接口逻辑进行优化,以减少延迟、提高数据吞吐量或降低资源消耗。它通常支持多种类型的存储器,如SRAM、DRAM、ROM等,以及通过特定的接口与FPGA连接。对于FPGA,需要编程来实现与DSP的接口逻辑,包括地址译码、数据传输、时序控制等。在连接完成后,进行详细的调试和测试,以确保数据能够在DSP和FPGA之间正确传输。

AigcFox的博客 4587

数组和集合的区别

https://blog.youkuaiyun.com/qq_27088383/article/details/50468779  一、数组声明了它容纳的元素的类型,而集合不声明。        二、数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了。而集合是可以动态扩展容量,可以根据需要动态改变大小,集合提供更多的成员方法,......

song_6666的博客 1万+

ROS 2 Slam Toolbox实战:从零跑通2D激光建图

SLAM(同步定位与地图构建)是移动机器人实现自主导航的基础技术,其核心在于通过传感器数据实时估计位姿并构建环境栅格地图。slam_toolbox作为ROS 2 Humble及后续LTS版本官方主推的2D SLAM后端,采用图优化+闭环检测架构,兼顾实时性、鲁棒性与工程可维护性。相比cartographer和hector_slam,它原生支持ROS 2、参数精简、诊断友好,特别适合硬件资源有限、缺乏IMU或深度相机的差速机器人平台。本文聚焦真实部署场景,覆盖RPLIDAR等常见2D激光雷达与TurtleBo

weixin_30596165的博客 357

集合和数组的区别对比

集合和数组的区别: 共同点:都是存储数据的容器; 不同点:数组的容量是固定的,集合的容量是可变的; 注释:如果存储的数据,长度经常发生改变,推荐使用集合。 容器概念:简单理解就是盒子。 ...

我的青春一去不复返 564

YOLOv11旋转目标检测详解:从原理到实战的全面指南

本文介绍了YOLOv11旋转目标检测技术的核心概念、架构设计与应用场景。传统目标检测使用水平边界框(AABB)存在背景噪声大、定位精度低等问题,而旋转边界框(OBB)通过引入角度参数显著提升了检测精度,在遥感、OCR、工业质检等领域具有独特优势。YOLOv11-OBB采用改进的多尺度检测层、CSPDarknet53骨干网络和双通道角度输出机制,在保持实时性的同时实现精确的旋转目标检测。实验表明,该方法在DOTA数据集上达到81.3%的mAP,相比传统方法提升显著,特别适合处理具有旋转特性或高宽比悬殊的目标。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 300

VMware如何安装img镜像,VMware如何安装openwrt软路由(含相关工具镜像)

VMware如何安装img镜像,VMware如何安装openwrt软路由(含相关工具镜像)

XiaoqiangClub的博客 4006

集合与数组有什么区别?ArrayList如何使用?即刻发车,请坐好小板凳。

当你在设计程序的时候,分不清应该使用集合还是使用数组,你要注意了!两句话就可以解释清楚集合与数组的区别,请看下文 集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以改变 数组的特点:数组和集合都是存储数据的容器,数组的存储容量是固定的 ...

259

Qt + windows + Linux+QtInstallerFramework打包教程

本文介绍了使用Qt Installer Framework在Windows和Linux系统下打包Qt应用程序的完整教程。Windows部分详细说明了从下载安装框架、配置环境变量、生成release版本,到创建安装包目录结构和修改配置文件的完整流程。Linux部分则重点讲解了环境变量设置、桌面应用配置(.desktop文件)以及两种打包方案:一种使用linuxdeployqt生成AppImage文件,另一种采用类似Windows的安装包方式。教程提供了关键配置文件(config.xml、package.xml

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 516

Java集合—Map系列集合(习题二)

4.现在有一个map集合如下: Map map = new HashMap(); map.put(1, "张三丰"); map.put(2, "周芷若"); map.put(3, "汪峰"); map.put(4, "灭绝师太"); 要求: (1)遍历集合,并将序号与对应人名打印。 (2)向该map集合中插入一个编码为5姓名为李晓红的信息

Java技术加油站的博客 502

Android Camera MTK框架

Camera简介: 虽然前文说道Android在5.0之后就推出了Camera2 API,但是各个厂家的基本未适配,导致目前市场上大部分机型使用的仍然是Camera1 API。PS:Android 9.0 Google强制要求各个平台厂商(高通/MTK/华为等)支持Camera2,不再兼容Camera1。 ...

weixin_49303682的博客 5507

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

大一大二的小设计作品集合(yuan)

大一大二的小设计作品集合(yuan) 科技作品show

行走的皮卡丘 786

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

二、集合合并

二、集合合并 文章目录二、集合合并题目描述解题思路上机代码简单拓展 题目描述 我们的教材上讨论了一个如何使用基本运算将两个集合合并的问题。下面,我们就采用基本操作完成集合合并的操作。 问题: 线性表的合并A=A∪B 设:有两个集合A和B分别用两个线性表LA和LB表示。求一个新的集合 A=A∪B。 输入:两个集合 输出:按照要求合并后的集合。 编程要求:题目中已经给出了主函数和部分已经实现的基本操作,请阅读给出的程序,编写其他尚未完成的基本操作(基本操作的定义请参见教材)。 注意:提交代码的时候,仅需提交

qq_42582489的博客 2596

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java集合(二)

泛型:不明确具体类型,直到接收到具体类型再进行推导统一数据类型,防止使用时出现的数据类型转换异常定义带泛型的类,方法等,使用的时候给泛型确定什么类型,泛型就会自动推导为对应类型,使代码更灵活定义泛型的类:在类名后面添加<T>,其中<>表示泛型,T为泛型名,类似于变量名,对于类泛型来说,当该类实例化出对象时,泛型就会被替代为指定类型,格式如下:public class 类名 <T> {// 成员//定义一个数组,充当ArrayList底层的数组,长度直接规定为10。

小何代码咖啡馆 1104

集合的两种排序方法(二)

之前是使用集合工具类collections的sort方法,通过实现Comparator的接口,重写compare方法来实现排序,第二种是通过treeset来实现排序,具体的呢是要在实体类中实现comparable接口,重写compareTo方法: 具体实现如下: public static void main(String[] args) { Employee emplo...

le6peer的博客 214

二、操作jQuery集合

导言 在通过jQuery选择器获取到jQuery集合后,我们也许会想更加细致的划分集合,或者只要其中的单个元素,这时候就需要我们来用jQuery的函数对集合进行操作了。 1. 创建新HTML集合一种典型的情况是:当需要从部获取数据时,使用Ajax后,返回的数据是JSON或者XML格式,需要我们显示为一个表格。$('html')创建基础的html元素 * $('<div>')等价于$('<div

Lucky的专栏 3434

Java集合详解(二)

Java集合详解(二) ArrayList,LinkedList,Vector的常用方法 ArrayList: add(Object element): 向列表的尾部添加指定的元素。 clear() :从列表中删除所有元素。 contains(Object o) :如果此列表包含指定的元素,则返回 true 。 get(int index) 返回此列表中指定位置的元素。 isEmpty() :如果此列表不包含元素,则返回 true 。 iterator() :以正确的顺序返回该列表中的元素的迭代器。 rem

weixin_45836302的博客 356

集合之集合使用(二)

一.  Properties   (最重要,经常使用,读取配置文件)  为HashTabel的子类       Properties prop = new Properties();                  prop.load(new FileInputStream(new File("AAA")));        //这里是2种加载读取文件方式            p.l

xj1692418655的专栏 282

java-NC221_集合的所有子集(二)

java-NC221 集合的所有子集(二)

d3y1`5 81_09 195

集合二

Set 特点:储存的元素无序唯一,是一个抽象的接口,不能直接实例化一个set对象。 定义:public interface Set extends Collection 常见方法: add( ) 向集合中添加元素 clear( ) 去掉集合中所有的元素 contains( ) 判断集合中是否包含某一个元素 isEmpty( ) ...

weixin_44779488的博客 197

集合练习二

/* Collection集合数组转集合 定义一个方法,要求此方法把int数组转成存有相同元素的集合(集合里面的元素是Integer),并返回。 把数组中的int类型转换成integer类型 */ package list_text; import java.util.ArrayList; public class demo42_2 { /** * @param args *...

weixin_44770985的博客 552

java学习集合二 Set集合 Map集合

HashMap 元素按照键是无序的 不重复的 无索引的 值不做要求 (与map体系一样)Set keySet() 获取所有键的集合。TreeMap 元素按照 键是排序的 不重复的 无索引的 值不做要求。Collection集合的格式: [元素1,元素2,元素3.。:底层数据结构是依然哈希表,只是每个键值对元素又额外的多了一个双链表的机制记录存储的顺序。Map集合的每一个元素的格式:key = value 键对值元素。底层数据结构是依然哈希表,只是每个元素又额外的多了一个双链表的机制记录存储的顺序。...

豆子的博客 311
上一篇: 一、关于IO
下一篇: 三、数据库连接池
_北冥有鱼_
博客等级 码龄10年 41粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值