1、无重复字符的最长子串

输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
class Solution {
public int lengthOfLongestSubstring(String s) {
int max = 0;
int curNoStrIndexStart = 0;
Map<String,Integer> map = new HashMap<>();
for (int i=0;i < s.length();i++) {
String index = String.valueOf(s.charAt(i));
if (map.containsKey(index)) {
curNoStrIndexStart = Math.max(map.get(index),curNoStrIndexStart);
}
max = Math.max(max,i - curNoStrIndexStart +1);
map.put(index,i + 1);
}
return max;
}
}

2、mysql获取表的元数据信息

import java.io.*;
import java.sql.*;
import java.util.*; public class DBEntityInit { private static String propName = "db.properties"; private static Connection connection = null; private static Map<String, List<Column>> tableData = new HashMap<>(); static {
connection = getConnection(propName);
} public static Connection getConnection(String propName){
Connection conn = null;
try {
InputStream in = new FileInputStream(new File(propName));
Properties properties = new Properties();
properties.load(in);
String url = properties.getProperty("jdbc.url");
String username = properties.getProperty("jdbc.username");
String driver = properties.getProperty("jdbc.driver");
String password = properties.getProperty("jdbc.password");
Class.forName(driver);
conn = DriverManager.getConnection(url,username,password);
} catch (SQLException | ClassNotFoundException | IOException e) {
e.printStackTrace();
}
return conn;
} public static void initTableData() {
ResultSet tables = null;
try {
DatabaseMetaData metaData = connection.getMetaData();
tables = metaData.getTables(null, null, null, new String[]{"TABLE"});
while (tables.next()) {
tableData.put(tables.getString(3),new ArrayList<>());
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (tables != null) {
tables.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
} public static void initTableColumn(String tableName) {
List<Column> columns = tableData.get(tableName);
PreparedStatement pst = null;
try {
String sql = "select * from " + tableName;
pst = connection.prepareStatement(sql);
ResultSetMetaData metaData = pst.getMetaData();
int columnCount = metaData.getColumnCount();
for (int i=0 ; i < columnCount; i++) {
Column column = new Column();
column.setName(metaData.getColumnName(i+1));
column.setType(metaData.getColumnTypeName(i+1));
columns.add(column);
}
//tableData.put(tableName,columns); } catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (pst != null) {
pst.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
} public static void initComment(String tableName) {
//与数据库的连接
PreparedStatement pst = null;
String tableSql = "select * from" + tableName;
List<String> comments = new ArrayList<>();//列名注释集合
ResultSet rs = null;
List<Column> columns = tableData.get(tableName);
try {
pst = connection.prepareStatement(tableSql);
rs = pst.executeQuery("show full columns from " + tableName);
while (rs.next()) {
String comment = rs.getString("Comment");
comments.add(comment);
} for (int i=0 ;i < columns.size() ;i++) {
Column column = columns.get(i);
column.setComment(comments.get(i));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
} }
} public static void closeConnection(Connection conn) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} public static Map<String, List<Column>> init() {
initTableData();
for (String key : tableData.keySet()) {
initTableColumn(key);
initComment(key);
}
closeConnection(connection);
return tableData;
} public static String getPropName() {
return propName;
} public static void setPropName(String propName) {
DBEntityInit.propName = propName;
} public static void main(String[] args) { init();
for (Map.Entry<String,List<Column>> entry : tableData.entrySet()) {
List<Column> value = entry.getValue();
System.out.println("--------------表名" + entry.getKey());
for (Column column : value) {
System.out.print(column.getName() + "---");
System.out.print(column.getType() + "---");
System.out.print(column.getComment());
System.out.println();
}
} } // public static void initColumnComment(String tableName) {
//
// try {
// List<Column> cList = tableData.get(tableName);
// DatabaseMetaData metaData = connection.getMetaData();
// ResultSet columns = metaData.getColumns(null, null, tableName, "%");
//
// while (columns.next()) {
// Column column = new Column();
// String name = columns.getString("COLUMN_NAME");
// String type = columns.getString("TYPE_NAME");
// String comment = columns.getString("REMARKS");
// column.setName(name);
// column.setType(type);
// column.setComment(comment);
// cList.add(column);
// }
// } catch (SQLException e) {
// e.printStackTrace();
// }
//
// } }

相关实体

public class Column {

    private String name;
private String type;
private String comment; public String getName() {
return name;
} public void setName(String name) {
name = name;
} public String getType() {
return type;
} public void setType(String type) {
this.type = type;
} public String getComment() {
return comment;
} public void setComment(String comment) {
this.comment = comment;
}
}

3、日期的加减操作

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; public class DateCalculate { private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); /**
* 获取形如yyyy-MM-dd HH:mm:ss
* @param date
* @return
*/
public static String datetimeToString(Date date) {
return sdf.format(date);
} /**
* 根据时间字符串获取日期
* @param dateString
* @return
* @throws ParseException
*/
public static Date stringToDatetime(String dateString) throws ParseException {
return sdf.parse(dateString);
} /**
* 获取本月最后一天
* @return
*/
public static Date getMonthStartDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH,1);
return calendar.getTime();
} /**
* 获取本月最后一天
* @return
*/
public static Date getMonthEndDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return calendar.getTime();
} /**
* 获取指定日期所属周的开始时间
* @param date
* @return
*/
public static Date getBeginWeekDate(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
if (dayOfWeek == 1) {
dayOfWeek += 7;
}
cal.add(Calendar.DATE,2 - dayOfWeek);
return cal.getTime();
} /**
* 距离指定日期所属周结束时间
* @return
*/
public static Date getEndWeekDate(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
if (dayOfWeek == 1) {
dayOfWeek += 7;
}
cal.add(Calendar.DATE,8 - dayOfWeek);
return cal.getTime();
} /**
* 对指定日期进行年份加减操作
* @param date
* @param num
* @return
*/
public static Date calculateDateOfYear(Date date,Integer num) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.YEAR,num);
return calendar.getTime();
} /**
* 对指定日期月份进行加减操作
* @param date
* @param num
* @return
*/
public static Date calculateDateOfMonth(Date date,Integer num) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH,num);
return calendar.getTime();
} /**
* 对指定日期天数进行加减操作
* @param date
* @param num 负整数 正整数
* @return
*/
public static Date calculateDateOfDay(Date date,Integer num) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH,num);
return calendar.getTime();
} public static void main(String[] args) throws ParseException { System.out.println(datetimeToString(getMonthStartDate(sdf.parse("2019-12-04 12:09:52"))));
System.out.println(datetimeToString(getEndWeekDate(sdf.parse("2019-12-04 12:09:52"))));
System.out.println(datetimeToString(calculateDateOfYear(stringToDatetime("2019-12-04 12:09:52"),-2)));
}
}  

java 操作实例的更多相关文章

  1. SysLog简介和java操作实例

    什么是SysLog syslog协议属于一种主从式协议:syslog发送端会传送出一个小的文字讯息(小于1024字节)到syslog接收端.接收端通常名为“syslogd”.“syslog daemo ...

  2. memcached—Java操作Memcached实例

    前面博客介绍了如何在Windows操作系统中安装Memcached,总结一下如何使用Java操作Memcached实例: 代码一: package com.ghj.packageoftool; imp ...

  3. java操作Hbase实例

    所用HBase版本为1.1.2,hadoop版本为2.4 /* * 创建一个students表,并进行相关操作 */ import java.io.IOException; import java.u ...

  4. java比较日期大小及日期与字符串的转换【SimpleDateFormat操作实例】

    java比较日期大小及日期与字符串的转换[SimpleDateFormat操作实例] package com.ywx.test; import java.text.ParseException; im ...

  5. Java 正则表达式实例操作

    Regular Expression正则表达式,简称RegExp,常规通用的表达式,在多个开发语言中都有它的实现,可以通过正则表达式来快速的检索.匹配.查找.替换字符串中的文本. 简单实例 匹配网址 ...

  6. JAVA操作ORACLE数据库的存储过程

    一.任务提出 JAVA操作oracle11g存储过程实验需要完成以下几个实例: 1.调用没有返回参数的过程(插入记录.更新记录) 2.有返回参数的过程 3.返回列表的过程 4.返回带分页的列表的过程. ...

  7. 安卓 SQLite数据库操作实例

    前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...

  8. 在安卓开发中使用SQLite数据库操作实例

    前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...

  9. Mongodb快速入门之使用Java操作Mongodb

    [IT168 专稿]在上一篇文章中,我们学习了Mongodb的安装和初步使用,在本文中,将学习如何使用Java去编程实现对Mongodb的操作. HelloWorld程序 学习任何程序的第一步,都是编 ...

随机推荐

  1. 安装gcc-c++报错解决办法

    问题 每次安装依赖包gcc-c++的时候,经常会遇到包如下错误   Error: Package: libstdc++-devel--.el7_4..x86_64 (ultra-centos-7.4- ...

  2. word2vector(含code)

    Word2Vec其实就是通过学习文本来用词向量的方式表征词的语义信息,即通过一个嵌入空间使得语义上相似的单词在该空间内距离很近. Embedding其实就是一个映射,将单词从原先所属的空间映射到新的多 ...

  3. pandas基础操作

    ```python import pandas as pd import numpy as np ``` ```python s = pd.Series([1,3,6,np.nan,44,1]) s ...

  4. 性能测试基础---jmeter webservice接口测试

    ·webservice接口测试实现.·SOA:面向服务的体系架构,主要为了应对大型系统的异构需求.典型的实现方式:webservice·微服务:为了对SOA这样的重服务架构进行解耦而存在的.一个or几 ...

  5. vue-router模式history与hash

    [重点] history与hash路由的区别 hash前端路由,无刷新 history 会去请求接口 vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 U ...

  6. LOJ 3160: 「NOI2019」斗主地

    题目传送门:LOJ #3160. 简要题意: 有一个长度为 \(n\) 的序列 \(a\),初始时 \(a_i=i\) 或 \(a_i=i^2\),这取决于 \(\mathrm{type}\) 的值. ...

  7. Google Chrome 解决 “您的连接不是私密连接” 和被毒霸劫持

    一.解决 “您的连接不是私密连接” 前一段时间,Chrome 突然显示出了“您的连接不是私密连接”,这下可难受了,大部分的网站打开都有问题. 找了各种方法,各种设置都是不行. 一.暴力.费力的方法直接 ...

  8. 201871010101-陈来弟《面向对象程序设计(java)》第二周学习总结

    201871010101-陈来弟<面向对象程序设计(java)>第二周学习总结 项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>https://www.cnblogs ...

  9. java读取HDFS压缩文件乱码

    java通过调用HDFS系统的FileSystem等API 直接读取HDFS的压缩文件会产生乱码 解决方法: 1.调用解码的API,解码后通过IO流处理. public static void mai ...

  10. 阿里云centos 7上面安装mysql5.7的详细步骤!!!

    前言: 网上太多的linux 的安装mysql教程,很多教程不全或者因为环境不一致导致无法成功安装,以下是亲测的可行性的方法,请参考. 步骤: Centos7操作系统YUM库列表里默认不再提供MySQ ...