Entry

List集合学习

馋奶兔 提交于 2021-01-09 05:58:47
Java中常用的List子类主要有: ArrayList、LinkedList、Vector 。有序( 存储和取出的元素一致),可重复的。 三者比较 1:访问:ArrayList和Vector都实现了RandomAccess接口,提供了随机访问功能,查询O(1);LinkedList是链表,查询O(n); 2:增删:ArrayList和Vector底层是数组,增删容易引起大量的内存操作,效率较慢;LinkedList是链表实现,增加和删除较快; 3:线程安全性:Vector是线程安全的,大部分的方法都用了syncrhoized关键字修饰。如果是 单线程 下使用,可以用 Arrayist ,如果是 多线程 操作的list,则可以用 Vector 来保证线程安全。 4:ArrayList每次扩容增加50%,Vector扩容增加一倍。 一:ArrayList ArrayList实现了List接口,实现了一系列的add()/get()/clear()/remove()等接口中的方法。其底层其实是一个数组,通过对数组上一系列操作的封装来实现list的各种功能的。   1:ArrayList 实际上是 通过一个数组去保存数据的 。当我们构造ArrayList时;若使用默认构造函数,则ArrayList的 默认容量大小是10 。 2:当ArrayList容量不足以容纳全部元素时

《Java练习题》Java进阶练习题(一)

放肆的年华 提交于 2021-01-09 01:50:39
编程合集: https://www.cnblogs.com/jssj/p/12002760.html 前言:不仅仅要实现,更要提升性能,精益求精,用尽量少的时间复杂度和空间复杂度解决问题。 【程序48】 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标 import java.util.HashMap; import java.util.Map; /** * 【程序48】 * 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标 */ public class Subject48 { public static void main(String[] args) { int [] nums = new int []{1,4,5,6,7,9,76,43,22,11 }; int target = 11 ; int [] result = twoSum(nums,target); for ( int i = 0; i < result.length; i++ ) { System.out.println(result[i]); } } /** * 获取满足条件的数组下标 * @param nums * @param target */

集合的学习

烂漫一生 提交于 2021-01-08 20:18:59
JAVA常用的数据结构知识,主要看集合相关。 数组和集合都是用来存储对象的,区别在于数组长度固定,集合的长度可变;数组存储基本数据类型,集合存储对象。 集合特点:只用于存储对象,长度可变,可以存储不同类型的对象。 集合框架体系 Collection接口是List、Set、Queue的父级接口。 Set接口有两个常用的实现类:HashSet和TreeSet。List接口的常用接口有ArrayList和Vector接口。 Map接口有两个常用的实现类:Hashtable和HashMap。 上述类图中,实线边框的是 实现类 ,比如ArrayList,LinkedList,HashMap等,虚线边框的是 抽象类 ,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是 接口 ,比如Collection,Iterator,List等。 1、Iterator接口   Iterator接口,这是一个用于遍历集合中元素的接口,主要包含hashNext(),next(),remove()三种方法。它的一个子接口LinkedIterator在它的基础上又添加了三种方法,分别是add(),previous(),hasPrevious()。也就是说如果是先Iterator接口,那么在遍历集合中元素的时候,只能往后遍历,被遍历后的元素不会在遍历到

hashmap嘿嘿嘿

烂漫一生 提交于 2021-01-08 18:31:23
1、jdk1.7 数组加链表 2、链表存放数据:hashcode相同,Entry{key:键 value:值 next:下一个节点} 3、取模算法,计算出存放数组的下标 int index = key.hashCode()%tables.length; 来源: oschina 链接: https://my.oschina.net/u/3142419/blog/2120785

linux syscall 详解【转】

断了今生、忘了曾经 提交于 2021-01-07 23:50:13
转自: https://blog.csdn.net/feixin620/article/details/78416560 引言:分析Android源码的过程中,要想从上至下完全明白一行代码,往往涉及app、framework、native一直到kernel,可能迷失到代码世界,明白了系统调用原理,或许能帮你 峰回路转 ,找到进入kernel函数的入口。本文主要讲解ARM架构相关源码: /bionic/libc/kernel/uapi/ asm-arm/ asm/unistd.h /bionic/libc/arch-arm/syscalls/kill.S /kernel/arch/arm/kernel/calls.S /kernel/arch/arm/include/Uapi/ asm/unistd.h /kernel/include/uapi/ asm-generic/unistd.h /kernel/include/linux/syscalls.h /kernel/kernel/signal.c /kernel/arch/arm/kernel/entry-common.S /kernelarch/arm/kernel/entry-armv.S 一、Syscall意义 内核提供用户空间程序与内核空间进行交互的一套标准接口,这些接口让用户态程序能受限访问硬件设备,比如申请系统资源

MyBatis 的 4 个妙用,别再踩坑了!

丶灬走出姿态 提交于 2021-01-07 22:53:28
Mybatis 是 Java 中一个非常好用的数据库框架,这儿记录一下在使用过程中遇到的坑。 官方中文文档地址: http://www.mybatis.org/mybatis-3/zh/getting-started.html 1、在Mybatis mapping.xml映射配置文件中使用大于>号小于号< 由于Mybatis的映射文件遵循xml文件的格式,所以不能使用像大于号或者小于号这样的xml文件特殊字符,需要使用转义字符代替。 整理了一份272页MybatisPDF文档 可以使用: SELECT * FROM test WHERE 1 = 1 AND start_date <= CURRENT_DATE AND end_date >= CURRENT_DATE <![CDATA[ when min(starttime)<='12:00' and max(endtime)<='12:00' ]]> 2、Mybatis中使用OGNL表达式test比较字符串 在Mybatis映射配置文件中,使用OGNL表达式test的时候,比较字符串时,需要调用 toString()方法保证 == 两边的值都是 String 类型。 <!-- 以下为错误写法,会抛NumberFormatException异常 --> <if test="username == 'U'"> <!--

【软通动力】HarmonyOS三方件开发指南(2)——LoadingView组件

女生的网名这么多〃 提交于 2021-01-07 11:02:00
目录: 1. LoadingView组件功能介绍 2. LoadingView使用方法 3. LoadingView开发实现 1. LoadingView组件功能介绍 1.1. 功能介绍: LoadingView组件是一个可以显示加载动画的三方组件,目前支持4种风格显示。 1.2. 模拟器上运行效果: 2. LoadingView使用方法 2.1. 新建工程,增加组件Har包依赖 在应用模块中添加HAR,只需要将precentpositionlayout.har和loadingview.har复制到entry\libs目录下即可(由于build.gradle中已经依赖libs目录下的*.har,因此不需要再做修改)。 2.2. 修改主页面的布局文件 修改主页面的布局文件ability_main.xml,将跟组件容器修改为com.isoftstone.precentpositionlayout.PrecentPositionLayout,然后再增加4个com.isoftstone.loadingview.LoadingView组件,分别位于屏幕的左上,左下,右上,右下,每个组件的长度和宽度都占屏幕的50%。修改后代码如下: <?xml version="1.0" encoding="utf-8"?> <com.isoftstone.precentpositionlayout

【软通动力】HarmonyOS三方件开发指南(1)-PrecentPositionLayout

旧巷老猫 提交于 2021-01-07 10:48:21
目录: 1. Prece ntPositionLayout功能介绍 2. PrecentPositionLayout使用方法 3. PrecentPositionLayout开发实现 1. PrecentPositionLayout功能介绍 1.1. 组件介绍: SDK提供了不同布局规范的组件容器,例如以单一方向排列的DirectionalLayout、以相对位置排列的DependentLayout、以确切位置排列的PositionLayout等。 其中PositionLayout中组件的位置是以绝对像素点定义的,无法实现根据屏幕的大小自适应。因此,引入一种以百分比方式定义的PrecentPositionLayout布局容器,通过它可以很方便的实现屏幕自适应。 1.2. 手机模拟器上运行效果: 2. PrecentPositionLayout使用方法 2.1. 新建工程,增加组件Har包依赖 在应用模块中调用HAR,只需要将precentpositionlayout.har复制到entry\libs目录下即可(由于build.gradle中已经依赖libs目录下的*.har,因此不需要再做修改)。 2.2. 修改主页面的布局文件 修改主页面的布局文件ability_main.xml,将跟组件容器修改为com.isoftstone.precentpositionlayout

微信扫一扫接口的调用

我是研究僧i 提交于 2021-01-06 11:29:16
   先 说明本人是个新手,负责人要求我在公司的微信公众号H5界面中添加一个扫一扫功能,这对于我来说还是个不小的挑战,因为之前的公众号开发大部分都是公司的前辈的开发的。对于微信接口的使用,我一点都不熟悉。 废话少说,现在我分享一下调用微信扫一扫的过程及代码,系统框架采用的是SSH框架。   开发扫一扫的满足条件:      一、需要微信公众号的APP_ID     二、需要微信公众号的开发者密码AppSecret(如何查看AppSecreti:开发-基本配置-开发者密码-重置 管理员扫码即可看到)     三、需要一个内网穿透的软件,我使用的是natapp     四、在微信公众号中将自己的本机Ip添加到IP白名单中 满足以上条件,那么我们就可以进行微信扫一扫的接口调用 首先创建微信配置工具类(部分代码是来自网上的大牛们的代码,由于浏览了几天几夜的网页,具体是谁的我也搞不清了)    微信签名类    package com.item.config; import java.util.UUID; import java.util.Map; import java.util.HashMap; import java.util.Formatter; import java.security.MessageDigest; import java.security

【python】-- Django ORM(基础)

孤人 提交于 2021-01-06 04:20:42
Django ORM(基础) Django 框架十分强大,自带数据库操作功能。Django 跟 SQLAchemy 一样,也是通过ORM(Object Relational Mapping,关系对象映射)的方式对数据库进行操作,django中遵循 Code Frist (根据代码中定义的类来自动生成数据库表)的原则。 一、创建表 1、在SQLite中创建表 1.1、在app中的models.py中先写类: from django.db import models # Create your models here. class UserInfo(models.Model): # id列,Django框架会默认生成id(自增,主键),也可以通过AutoField类型自定义主键,不过Django框架默认生成ID列会失效 # 用户名列,字符串类型,最大长度长度 username = models.CharField(max_length=32) password = models.CharField(max_length=64) 1 AutoField(Field) 2 - int自增列,必须填入参数 primary_key= True 3 4 BigAutoField(AutoField) 5 - bigint自增列,必须填入参数 primary_key= True 6 7 注