自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (14)
  • 问答 (3)
  • 收藏
  • 关注

原创 C#在winfrom程序中写一个定时器,每两分钟调用一个方法

前提是winform程序要开启运行,timer才会执行。public TimeSpan fun() { System.DateTime currentTime = new System.DateTime(); currentTime = System.DateTime.Now; DataTa...

2019-10-21 15:42:48 2573

原创 用PS设置宽480像素*高640像素,分辨率300dpi,24位真彩色 大小限制20K到40K之间的照片

5、这样图片就是24位真彩的图片:PS软件中的8位/通道有R(红色)、G(绿色)和B(蓝色)三个颜色,所以8位/通道一共是24位。1、在电脑桌面双击打开PS软件,在PS软件中点击文件,再点击打开,选择打开一张需要处理的图片。第七步:选择菜单栏中的“文件-存储”选项,在弹出的对话框中,单击“确定”按钮,完成操作。第二步:在打开对话框中,选择一张需要调整分辨率的图片,单击“打开”按钮。第一步:打开ps软件,选择菜单栏“文件”中的“打开”。第三步:在菜单栏“图像”中,选择“图像大小”。

2023-02-27 08:58:22 9929

原创 Excel的len函数和sum函数联合使用问题

最近有一个老师问了一个统计每个老师课时的问题,他是用Excel统计的,其中有个函数。原来len函数是和sum一起使用的,所以我查了sum函数,有个单条件求和。,我网上查了一下,并没有查到这个函数的这样的用法。仔细研究,原来是有个条件表达式,然后求和。

2023-02-25 18:58:55 433

原创 新版Windows11跳过联网检查

计算机会重新启动,就会出现《我没有Internet连接》和《继续执行受限设置》 的选项。联网步骤出现我没有Internet连接,证明命令成功生效,选择我没有Internet连接。通过shift+F10 调出黑窗,命令改为oobe\bypassnro。出现以上问题,重复几次都不行,而且电脑是联网了的。输入以下命令电脑会重启,一步步按步骤操作即可。

2023-02-25 18:26:28 2703

原创 SQL日期字段查询和日期相减得到小时数并保留2位小数

1、得到日期字段的不同格式select RecordTime from [192.168.30.2].[SmartChargeLaiBao].[dbo].[HRVisitTime] aselect convert(char(10),RecordTime,120) from [192.168.30.2].[SmartChargeLaiBao].[dbo].[HRVisitTime] aselect CONVERT(varchar, RecordTime, 120 ) from [192.16

2021-06-22 17:36:09 2105

原创 SqlServer还原数据库报错处理方法

1、出现以下错误2、选择以下2处

2021-03-06 09:29:11 657

原创 C#实现每日定时推送报表

1、写好winfrom程序,或者控制台程序写在Load方法里面,记住要加红色标记的代码,结束程序private void Form1_Load(object sender, EventArgs e) { if (str2 == "") { //MessageBox.Show("推送成功!", "提示", MessageBoxButtons.OK, Mess...

2020-12-25 09:05:22 805

原创 通过SQL访问不同网络(异地)的数据库

1、比如在深圳需要访问重庆的数据库需要加入重庆的服务,如下sp_addlinkedserver '172.16.1.215\MSSQL12'如果不加,则会出现以下错误2、右键数据库属性,可以查看异地服务的名称3、经过以上步骤,就可以在深圳查询窗口,通过以下SQL访问重庆数据库的表SELECT * FROM [172.16.1.215\MSSQL12].LIPDB.dbo.[User]...

2020-12-24 13:02:31 572

原创 C#使用第三方控件ReoGrid实现将Excel嵌套在程序中,方便数据的导入,可以直接粘贴数据,加载Excel模板样式

1、引用dll2、将生成的控件拖入到窗体中3、加载Excel模板,含有主要代码,实现cellvaluechange功能,类似datagridviewpath = Util.Pub.DownloadFile("重庆模组成本模型.xlsx"); reoGridControl1.Load(path, unvell.ReoGrid.IO.FileFormat.Excel2007);reoGridControl1.Worksheets[0].Ce

2020-12-12 16:36:47 4119 2

原创 C# Chart控件实现柱形图和折线图在一个chart上同时显示,并显示滚动条

效果如下:左侧纵坐标表示柱形图Y轴数据,右侧纵坐标表示折线图Y轴数据代码:private void ButtonClickSelect() { string GD = textBoxGD.Text.Trim(); string XH = textBoxXH.Text.Trim(); string CJ = comboBoxCJ.Text.Trim(); string Date1 =

2020-09-20 14:46:29 3918 1

原创 C#执行多条SQL写法

List<string> sqlList2 = new List<string>(); List<List<SqlParameter>> values2 = new List<List<SqlParameter>>(); sqlList.Add("update LL_Main set DelStatus='Y' where BH=@BH" + sqlList.Count.ToStrin.

2020-09-18 14:25:22 1214

原创 C# winfrom实现半小时没有操作,直接重启应用系统

public static int tickcount = 30;//30分钟System.Windows.Forms.Timer timer2 = new System.Windows.Forms.Timer();timer2.Interval = 60000;//1分钟timer2.Tick += timer_Tick;timer2.Start(); private static void timer_Tick(object sender, EventArgs e)...

2020-08-21 14:05:07 357

原创 ASP网站在企业微信访问时,实现给微信推送消息,提示审批人进行相应操作

首页是开发的网页程序,部署到企业微信,微信有一个管理平台,做好相关配置,在调用如下方法。调用方法如下:第一个参数是工号,第二个参数是推送的消息文本,第三个参数是审批用户组的IDWX wx = new WX(); if (LoginUser.GetCZ_YFLeaderALLData().Rows.Count > 0) { DataTable dtYF = Lo...

2020-08-21 14:01:29 891 1

原创 ASP网站在手机上访问时出现布局混乱的解决办法

在控件加个最小宽度的属性即可,如下min-width:300px效果如下:

2020-08-21 12:59:07 269

原创 编译器错误消息: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\App_Web_site1.master.54280842.zxcrvlrb.

在浏览器访问发布的ASP网站时,出现以下错误:解决办法:原因是由于系统目录下的Temp目录无相应的权限所致,具体操作如下:来到C:/Windows目录,修改temp文件夹的属性。在安全页设置IIS-IUSRS的权限,赋予修改、读取、写入等权限。参考:https://blog.csdn.net/lincyang/article/details/6317487...

2020-08-21 12:52:54 180

原创 设置C#控件splitter的大小

如下图:宽和高都可以设置

2020-08-06 13:02:35 800

原创 子窗口在TabControl上最大化

通过以下代码设置窗口最大化,子窗体未能最大化fr.Dock = DockStyle.Fill;public void TabPageAddV2(string tabPageName, string tabPageText, ref Form fr) { if (!tabControl1.TabPages.ContainsKey(tabPageName)) { try {

2020-08-06 12:59:35 788

原创 C#使用7Z命令行压缩CSV文件为.gz文件

首先,需要安装7Z软件,以下是安装在C盘以下是具体代码://组成新的路径 string path0 = System.Windows.Forms.Application.StartupPath + "\\ausu\\"; //判断该路径下文件夹是否存在,不存在的情况下新建文件夹 if (!Directory.Exists(path0)) ...

2020-07-29 16:08:51 516

原创 C# datagridview行号自适应宽度

未设置之前是如下:设置之后是如下:

2020-07-27 15:52:40 1074

原创 不同数据库之间表进行同步SQL写法

insert into GWBGDB.dbo.EmployeeSELECT * FROM WBClient.dbo.Employee WHERE UserID not in (SELECT UserID FROM GWBGDB.dbo.Employee)

2020-07-27 11:39:21 249

原创 设置DataGridview行的字体颜色

private void dgv_DataSourceChanged(object sender, EventArgs e) { for (int i = 0; i < dgv.Rows.Count; i++) { string CY = (Decimal.Parse(dgv.Rows[i].Cells["MESLPSL"].Value.ToString()) + Decimal.Parse(dgv.Row...

2020-07-21 13:13:06 2273

原创 C#导出Excel时,设置列为数字类型

只需要在PutValue时,转为数字类型即可。导出时,在Excel会自动显示为数字。默认是文本。for (int i = 0; i < dt.Rows.Count; i++) { for (int j = 0; j < dt.Columns.Count; j++) { if (j > 3) ...

2020-07-21 12:56:09 2990

原创 C# winfrom使用ListView实现文件上传,并显示文件对应图标,文件是以image类型存在数据库, 同时实现打开、下载、删除功能(二)

1、添加contextMenuStrip1控件2、右键打开功能private void 打开文件ToolStripMenuItem_Click(object sender, EventArgs e) { //文件没有选中 if (this.listView1.SelectedItems.Count == 0) return; //获取选中文件 va..

2020-07-02 15:29:52 452

原创 C# winfrom使用ListView实现文件上传,并显示文件对应图标,文件是以image类型存在数据库, 同时实现打开、下载、删除功能(一)

效果图:1、添加listview控件2、添加imagelist,并上传图标文件,设置key值3、编写上传附件按钮代码private void buttonUpload_Click(object sender, EventArgs e) { try { //listView1.Items.Clear(); listView1.SmallImageList

2020-07-02 15:09:42 566

原创 C# winfrom获取token,以post方式上传报表数据给客户

客户会提供获取token的URL,用户名和密码public static string getToken() { string url = "https://。。。。。。。。。。/token"; string KEY = "J_。。。。。。。8qdlESELldUa"; string SECRET = "SmXL。。。。。。。AyqoNPVs6ga"; // 这里不知道用的是哪个版本的SS

2020-06-02 11:51:51 2897

原创 将临时表的数据更新到正式表

1、ID和DJH组合成主键:update YWLBMCGJHHZ2 set GYSBM=(select f5 from tempData where f1=ID and DJH=f2) ,GFJC=(select f7 from tempData where f1=ID and DJH=f2)where ID=(select f1 from tempData where f1=ID and DJH=f2) and DJH=(select f2 from tempData where f1=ID a.

2020-06-02 11:42:55 2431

原创 winfrom将RichTextBox控件上的文件保存到FTP服务器,并将文件下载到RichTextBox控件上

1、在窗体上添加RichTextBox,并粘贴文件到上面2、点击提交按钮时,将RichTextBox上的文件保存到FTP服务器string filename = DateTime.Now.ToString("yyyyMMddHHmmssfff") + Util.Pub.GetRandomStr(4,"0123456789") + ".rtf"; string rtfFileName = Application.StartupPath + "\\temp\

2020-05-23 12:08:02 237

原创 winfrom子窗体如何回写数据给父窗体

效果图如下:第一步:在父窗体添加单击按钮代码父窗体需要定义以下成员变量strValue,来保存子窗体传过来的数据private string strValue; public string StrValue { set { strValue = value; } get {

2020-05-23 11:23:06 371

原创 C#将Excel文件存入数据库,实现打开模板功能

表结构:CREATE TABLE [dbo].[ExcelFile]( [FileName] [nvarchar](50) NOT NULL, [Data] [image] NOT NULL, 注意字段类型CONSTRAINT [PK_ProData] PRIMARY KEY CLUSTERED( [FileName] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = O...

2020-05-17 16:51:18 414

原创 字符串转为decimal类型时,保留小数点后2位

select WLDL,DW,TFTCGSL,TFTCGJE,CZCGSL,CZCGJE,CQCGSL,CQCGJE,YFCGSL,YFCGJE,SUM(cast(case when TFTCGSL='' then '0' else TFTCGSL end as decimal)+cast(case when CQCGSL='' then '0' else CQCGSL end as...

2020-04-29 14:36:54 3706

原创 对C# DataTable的列实现distinct即去重的功能

实际上是在原有的datatable上面,新组成一个datatable if (this.textBoxNDYF.Text.Trim() == "" && this.comboBoxGC.Text.Trim() == "" && this.textBoxWLBM.Text.Trim() == "" &&...

2020-04-29 14:31:04 1262

原创 使用C#自带的ReportViewer控件生成报表

第一步:新建数据集第二步:新建模板,添加数据集第三步:新建Form窗体,拖入ReportViewer控件第四步:加载之前建立的模板文件最后一步:赋值源代码如下:private void FormWWLHZ2_Load(object sender, EventArgs e) { this....

2020-04-29 14:07:12 3345

原创 触发器:当表的某一个字段为什么值时,自动更新表的数据

例子:Create Trigger [dbo].[WLCG_SP_TRI]On [dbo].[WLCG_SP] for Update As --事件触发后所要做的事情if Update(SPR)beginUpdate WLCG_SPSet SPR=''From WLCG_SP br , Deleted d ,Inserted i --Deleted和Inserted临时表...

2020-04-29 13:39:27 535

转载 C#间隔时间执行任务和时间点执行任务

时间点执行:using System;using System.Timers;namespace TimerExample1{ class Program { static void Main(string[] args) { System.Timers.Timer timer = new System.Time...

2020-04-24 12:01:41 1398

原创 C#调用SAP接口的方法,并返回数据

需要引入以下两个dll来访问SAP以下是调用SAP的例子:以下是SAP的工具类:using SAP.Middleware.Connector;using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Text;//using Syst...

2020-04-19 11:58:53 1747

原创 Excel数据导入datatable和datagridview并检验符合条件的数据,有问题的数据行在提示列显示错误信息

Rst表示提示消息的列private void toolStripButtonImport_Click(object sender, EventArgs e) { dt = Util.Pub.ImportExcel(); if (dt != null && dt.Columns.Count >= 3) ...

2020-04-19 11:48:02 148

原创 C#将datatable数据直接存入数据库表

需要满足以下三个条件,才可以存入数据库1、要在数据库建立一张存该datatable的表2、表的字段名要和datatable的列名一致,否则会报错3、表的字段要涵盖datatable的所有列,表的字段可以多,但是不能少调用:WLFLJZJ是数据库的表名,AddTable方法执行速度极快,能批量存入几万条数据。bool b = DBHelper.AddTable(dt, "WLF...

2020-04-19 11:42:04 8836 1

原创 C# winfrom点击最小化按钮时实现回到桌面的功能

Form窗体实现SizeChange函数:private void FormLaboratoryProcessHandMore2_SizeChanged(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Minimized)//当窗体的状态是最小化时触发...

2020-04-12 09:28:24 612

原创 C#使用Aspose.Cells.dll将DataTable导出到Excel

初始化DataTable和DataGridView,并调用以下方法public static void ExportExcel(DataTable dt, DataGridView dgv) { if (dt == null || dt.Rows.Count == 0) { MessageBox....

2020-04-10 13:56:23 512

原创 同一个服务器不同数据库之间数据插入SQL写法

例子:LIPDB、MODProductReport都是数据库名称insert into [LIPDB].dbo.[User]SELECT * FROM [MODProductReport].dbo.[User]where UserID not in (SELECT UserID FROM [LIPDB].dbo.[User])delete from Noticedelete...

2020-04-08 13:17:44 504

2013-2022年信息技术和通用技术高考试卷及答案

江西的历届高考真题,非常详细,有答案,可以打印出来,您值得拥有。 适合单招、高考考生,还适合想要从事教师行业的人。

2023-05-07

html语言制作的爱心代码

可用于学习、开发等

2023-05-07

学校、公司、企业等计算机机房管理制度

一、机房维护保养制度 1、清理机房卫生。 1)每日清理机房周围的环境卫生。 2)每日清理机房内部卫生。 定期对机房内部进行大清除。

2023-05-07

学校、公司或企业等机房应急管理制度

为确保学校机房安全与稳定,以保证正常运行为宗旨,按照“预防为主,积极处置”的原则,本着建立一个有效处置突发事件,建立统一指挥、职责明确运转有序、反应迅速处置有力的机房安全体系的目标,特制定本预案。

2023-05-07

计算机网络技术习题,适合初学者

中职院校的学习

2023-02-23

WinFormSkin.rar

winfrom皮肤资源,可直接运行,用来优化winfrom界面,在公司项目中有实际应用,s = new Sunisoft.IrisSkin.SkinEngine();一句代码就可以应用。

2020-10-17

JustForFun.zip

程序通俗易懂,包含服务端和客户端,服务端里面有IP地址和端口,可以修改为自己的地址,服务端有使用多线程,循环监听客户端的消息,并返回消息给客户端。 测试的话,需要把服务端和客户端都运行起来,程序可以直接运行,没有连接数据库。

2020-08-06

报工系统,与SAP有交互

C#winfrom项目,将数据传给SAP即称为报工,是net4.0版本,网上也有3.5的dll,看个人需求,没有数据库文件,运行会报错,仅供学习使用

2020-04-02

实验室流程管理系统winform项目

C#项目的实验室流程管理系统,有框架,完整源码,没有数据库,运行不了,需要自己看代码,可以自己建表,提单--->测试数据人员填写数据--->公司领导审核(只有同意和拒绝2个按钮),是公司内部项目源码,仅供学习使用,不能用于商业利益

2020-04-02

C#winfrom集成平台系统,公司几个项目集成到其中

C#项目整合多个dll项目,有框架,源码,没有数据库,运行不了,需要自己看代码,可以自己建表,是公司内部项目源码,仅供学习使用,不能用于商业利益

2020-04-02

毕业设计系统和论文和需求文档

有毕业设计代码和文档,由本人的信息资料,如有帮助,请勿泄露信息,O(∩_∩)O谢谢

2014-04-30

购物网站源码以及数据库_mvc架构

本系统采用的是MySQL数据库,分为前台和后台,采用的技术是mvc即JavaBean+Servlet+JSP。 代码完全正确,如果有一个JSP页面显示错误,是由于MyEclipse的问题,不用管,能正常运行。 有分页技术、自定义el函数、发送邮件(要联网才行)、激活用户(要联网才行)、注册、登录、在线支付(真的会扣款, 不过程序中固定了为1分钱,因为只是试验,要联网才行)等等。 有助于学习,特别贡献 。

2014-03-25

Servlet知识点和示例

ServletContext对象 (1)WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web 应用。 (2)ServletContext对象被包含在ServletConfig对象中,开发人员在编写servlet时,可以通过 this.ServletConfig.getServletContext方法获得对ServletContext对象的引用.还可以直接通过 this.getServletContext方法获得对ServletContext对象的引用. (3)由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过 ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。 (4)context域对象:域在中文里面就是“范围”的意思,它是整个web应用的范围。还有request域、session域和page域。 (5)ServletContext对象可以获取一些全局的配置信息,例如数据库的一些信息,可以配置xml文件当中 ,之后,通过ServletContext对象获取。这样配置的好处是每个servlet都可以直接访问,而不需要为每 个servlet进行配置,显得繁琐。 (6)servletContext域:1,是一个容器 2。作用范围是应用程序范围

2014-01-04

jsp+oracle绩效考核管理系统

毕业设计 jsp+oracle绩效考核管理系统 非常完整,不过数据库要自己建立,有六张表,插入一些数据即可,用的软件是myeclipse,数据库数据库是oracle11g, oracle下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html,有两个文件,都要安装,很简单。 系统运行界面算是美观,个人看法不一。

2013-10-25

xml程序大集绵(有各种文件,包括很多)

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE person SYSTEM "dtdFile.dtd"> <?xml-stylesheet href="xmlXSL.xsl" type="text/xsl" ?> <!--<?xml-stylesheet href="person.css" type="text/css" ?>--> <person> <student> <sno>1067001516</sno> <name>汤柳清</name> <sex>男</sex> <age>22</age> <address>江西师范大学</address> <tel>15270861237</tel> </student> <student> <sno>1067001517</sno> <name>张三</name> <sex>女</sex> <age>20</age> <address>江西财经大学</address> <tel>15236587458</tel> </student> <student> <sno>1067001518</sno> <name>李四</name> <sex>男</sex> <age>21</age> <address>南昌航空大学</address> <tel>13979845213</tel> </student> <student> <sno>1067001519</sno> <name>莉莉</name> <sex>女</sex> <age>21</age> <address>南昌大学</address> <tel>13012536987</tel> </student> <student> <sno>1067001520</sno> <name>露西</name> <sex>男</sex> <age>21</age> <address>江西大学</address> <tel>13979844125</tel> </student> <student> <sno>1067001521</sno> <name>李明</name> <sex>男</sex> <age>20</age> <address>江西科技大学</address> <tel>18079845213</tel> </student> <student> <sno>1067001522</sno> <name>小花</name> <sex>男</sex> <age>30</age> <address>江西农业大学</address> <tel>15079845213</tel> </student> <student> <sno>1067001523</sno> <name>小明</name> <sex>女</sex> <age>20</age> <address>江西工业大学</address> <tel>17079845213</tel> </student> </person>

2013-06-13

javascript代码,通俗易懂

javascript以下是javascript中的数组定义形式: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>Untitled Document</title> </head> <body> <script type="text/javascript"> /* * javascript中的数组演示。

2013-05-16

java集合知识-map、set等

Set:元素不可以重复,是无序。p508 Set接口中的方法和Collection一致。 |--HashSet: 内部数据结构是哈希表 ,是不同步的。 如何保证该集合的元素唯一性呢? 是通过对象的hashCode和equals方法来完成对象唯一性的。 如果对象的hashCode值不同,那么不用判断equals方法,就直接存储到哈希表中。 如果对象的hashCode值相同,那么要再次判断对象的equals方法是否为true。 如果为true,视为相同元素,不存。如果为false,那么视为不同元素,就进行存储。 记住:如果元素要存储到HashSet集合中,必须覆盖hashCode方法和equals方法。 一般情况下,如果自定义的类会产生很多对象,比如人,学生,书,通常都需要覆盖equals,hashCode方法。 建立对象判断是否相同的依据。 import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashSet; public class HashSetTest { public static void main(String[] args) { HashSet hs = new LinkedHashSet(); hs.add("hahah"); hs.add("hehe"); hs.add("heihei"); hs.add("xixii"); hs.add("hehe"); Iterator it = hs.iterator(); while(it.hasNext()){ System.out.println(it.next()); } } } 例子2-1: import java.util.HashSet; import java.util.Iterator; //package cn.itcast.p.bean; class Person /*extends Object*/// implements Comparable { private String name; private int age; public Person() { super(); } public Person(String name, int age) { super(); this.name = name; this.age = age; } @Override//覆盖hasCode() public int hashCode() { // System.out.println(this+".......hashCode"); return name.hashCode()+age*27; // return 100; } @Override//覆盖equals方法 public boolean equals(Object obj) { if(this == obj) return true; if(!(obj instanceof Person)) throw new ClassCastException("类型错误"); // System.out.println(this+"....equals....."+obj); Person p = (Person)obj; return this.name.equals(p.name) && this.age == p.age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } //import cn.itcast.p.bean.Person; /* * 往hashSet集合中存储Person对象。如果姓名和年龄相同,视为同一个人。视为相同元素。 */ public class HashSetTest { /** * @param args */ public static void main(String[] args) { HashSet hs = new HashSet(); /* * HashSet集合数据结构是哈希表,所以存储元素的时候, * 使用的元素的hashCode方法来确定位置,如果位置相同,在通过元素的equals来确定是否相同。 * */ hs.add(new Person("lisi4",24)); hs.add(new Person("lisi7",27)); hs.add(new Person("lisi1",21)); hs.add(new Person("lisi9",29)); hs.add(new Person("lisi7",27)); Iterator it = hs.iterator(); while(it.hasNext()){ Person p = (Person)it.next(); //it.next()是Object对象,必须要强转,如果不强转的话,则会输出对象的哈希码 System.out.println(p); System.out.println(p.getName()+"...."+p.getAge()); } } } /* 结果如下: f:\tang>javac HashSetTest.java 注: HashSetTest.java使用了未经检查或不安全的操作。 注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。 f:\tang>java HashSetTest Person@6236515 lisi9....29 Person@6236435 lisi1....21 Person@62364dd lisi7....27 Person@6236489 lisi4....24 */ 例子2-2 package test; import java.util.HashSet; import java.util.Iterator; //package cn.itcast.p.bean; class Person /*extends Object*/// implements Comparable { private String name; private int age; public Person() { super(); } public Person(String name, int age) { super(); this.name = name; this.age = age; } @Override//覆盖hasCode() public int hashCode() { // System.out.println(this+".......hashCode"); return name.hashCode()+age*27; // return 100; } @Override//覆盖equals方法 public boolean equals(Object obj) { if(this == obj) return true; if(!(obj instanceof Person)) throw new ClassCastException("类型错误"); // System.out.println(this+"....equals....."+obj); Person p = (Person)obj; return this.name.equals(p.name) && this.age == p.age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { // TODO Auto-generated method stub return "姓名: "+this.name+"; 年龄"+this.age; } } //import cn.itcast.p.bean.Person; /* * 往hashSet集合中存储Person对象。如果姓名和年龄相同,视为同一个人。视为相同元素。 */ public class HashSetDemo { public static void main(String[] args) { HashSet hs = new HashSet(); /* * HashSet集合数据结构是哈希表,所以存储元素的时候, * 使用的元素的hashCode方法来确定位置,如果位置相同,在通过元素的equals来确定是否相同。 * */ hs.add(new Person("lisi4",24)); hs.add(new Person("lisi7",27)); hs.add(new Person("lisi1",21)); hs.add(new Person("lisi9",29)); hs.add(new Person("lisi7",27)); System.out.println(hs); Iterator it = hs.iterator(); while(it.hasNext()){ Person p = (Person)it.next(); //it.next()是Object对象,必须要强转,如果不强转的话,则会输出对象的哈希码 //System.out.println(p); //System.out.println(p.getName()+"...."+p.getAge()); } } } 输出结果如下:(和例子2有所不同,下面的结果是覆盖了父类Object的toString方法,所运行出来的结果。如果不覆盖,则输出每个对象的哈希码) [姓名: lisi9; 年龄29, 姓名: lisi1; 年龄21, 姓名: lisi7; 年龄27, 姓名: lisi4; 年龄24] 例子2-3: package test; import java.util.HashSet; import java.util.Iterator; //package cn.itcast.p.bean; class Person /*extends Object*/// implements Comparable { private String name; private int age; public Person() { super(); } public Person(String name, int age) { super(); this.name = name; this.age = age; } @Override//覆盖hasCode() public int hashCode() { // System.out.println(this+".......hashCode"); return name.hashCode()+age*27; // return 100; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { // TODO Auto-generated method stub return "姓名: "+this.name+"; 年龄"+this.age; } } //import cn.itcast.p.bean.Person; /* * 往hashSet集合中存储Person对象。如果姓名和年龄相同,视为同一个人。视为相同元素。 */ public class HashSetDemo { /** * @param args */ public static void main(String[] args) { HashSet hs = new HashSet(); /* * HashSet集合数据结构是哈希表,所以存储元素的时候, * 使用的元素的hashCode方法来确定位置,如果位置相同,在通过元素的equals来确定是否相同。 * */ //hs.add(new Demo("abc")); hs.add(new Person("lisi4",24)); hs.add(new Person("lisi7",27)); hs.add(new Person("lisi1",21)); hs.add(new Person("lisi9",29)); hs.add(new Person("lisi7",27)); //System.out.println(hs); Iterator it = hs.iterator(); while(it.hasNext()){ Person p = (Person)it.next(); //it.next()是Object对象,必须要强转,如果不强转的话,则会输出对象的哈希码 //System.out.println(p); System.out.println(p.getName()+"...."+p.getAge()); } } } 结果如下:(由于没有覆盖equals方法的原因) lisi9....29 lisi1....21 lisi7....27 lisi7....27 lisi4....24 例子3: import java.util.HashSet; import java.util.Iterator; public class HashSetTest { public static void main(String[] args) { HashSet hs = new HashSet(); hs.add("hehe"); hs.add("heihei"); hs.add("hahah"); hs.add("xixii"); hs.add("hehe"); Iterator it = hs.iterator(); while(it.hasNext()){ System.out.println(it.next()); } } } f:\tang>javac HashSetTest.java 注: HashSetTest.java使用了未经检查或不安全的操作。 注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。 f:\tang>java HashSetTest heihei hehe hahah xixii //重复的元素只会输出一次,而且无序 f:\tang> 例子4: package test; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashSet; public class HashSetDemo { public static void main(String[] args) { HashSet hs = new HashSet(); hs.add("hahah"); hs.add("hehe"); hs.add("heihei"); hs.add("xixii"); hs.add("hehe"); hs.add(1.2);//浮点型 hs.add(1234);//整型 Iterator it = hs.iterator(); while (it.hasNext()) { System.out.println(it.next()); } } } 以上程序不会报错,运行结果如下: (是由于没有使用泛型造成的) heihei hehe 1234 hahah 1.2 xixii

2012-12-13

JAVA细节知识

java 类 对象引用 对象 构造函数 抽象类和接口,图形解析 Car c = new Truck(); 注意:当一个类中有多个构造函数时,可以通过this关键字相互调用。根据参数的个数、类型,选择调用哪一个构造函数。 注意:当父类的引用指向子类对象时,若访问被重写的方法,则将访问被重新定义的子类中的方法。 接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的, 另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。 还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.

2012-11-09

java线程知识的相关代码

线程的基本知识,java代码,线程的更名以及其他注意事项

2012-10-26

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除