ASList

Java基础-集合

喜你入骨 提交于 2020-10-01 05:45:04
集合 集合的概念 集合是对象的容器,定义了对多个对象进行操作的常用方法,可实现数组的功能 集合和数组的区别: 数组长度固定,集合长度不固定 数组可以存储基本类型和引用类型,集合只能存储引用类型 Collection体系集合 Collection父接口方法 Iterator<E>iterator() 返回一个用于访问集合中各个元素的迭代器 int size() 返回当前存储在集合中的元素个数 boolean isEmpty() 如果集合中没有元素,返回true boolean contains(Object obj) 如果集合中包含了一个与obj相等的对象,返回true boolean containsAll(Collection<?> other) 如果这个集合包含other集合中的所以元素,返回true boolean add(E element) 将一个元素添加到集合中,如果由于这个调用改变了集合,返回true boolean addAll(Collection<? extends E> other) 将other集合中所以元素添加到这个集合.如果由于这个调用改变了集合,返回true boolean remove(Object obj) 从这个集合中删除等于obj的对象.如果有匹配的对象被删除,返回true boolean removeAll(Collectin<?>

项目经理说这种代码必须重构,我同意了,这代码是写的是有多烂!

会有一股神秘感。 提交于 2020-08-19 22:01:38
摘要 开发已过几载,阅代码无数,有人写的代码逻辑清晰,bug难以隐藏;依赖最少,易于维护;错误处理完全根据一个明确的策略; 性能接近最佳化,避免代码混乱和无原则的优化;后期阅读真是赏心悦目,就像是看一篇文章。 但今天我想DIss的是一些CV大佬,那写的代码真是惨不忍睹。 来吧,展示 标志位以及全局变量太多,看的头皮发麻,后期一旦有个地方忘了程序就会出错 /* 处理的业务的各种计算 */ public Result beginBusiness(Map<String, String> requestParmsMap,String myBusinessMessage,String ) throws RuntimeException { System.out.println("开始了"); // 规则方案ID String goodbusinessid = requestParmsMap.get("goodbusinessid"); // 项目GUID String myprojectKey = requestParmsMap.get("myprojectKey"); // 报表类型 String reportType = requestParmsMap.get("reportType"); // 数据配置ID String dataConfigId = requestParmsMap

Java8新特性代码示例浅聊

旧城冷巷雨未停 提交于 2020-08-17 19:12:17
   Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。   博主最近才有空研究了一下Java8的一些新特性,简单地写了一些测试用例,感觉开始有那味了,受益颇深,将示例代码贴出,以供大家学习交流。   测试用例代码:    import java.util.* ; import java.util.stream.Collectors; /** * @ClassName Java8Test * @Description java8新特性测试用例 * @Author zzp * @Date 2020/6/30 11:06 * @Version 1.0 */ public class Java8Test { public static void main(String[] args) { Java8Test test = new Java8Test(); List <String> hobbies1= Arrays.asList("篮球","看书","写作" ); List <String> hobbies2= Arrays.asList("足球","看书","睡觉" );

恕我直言你可能真的不会java第4篇:Stream管道流Map操作

末鹿安然 提交于 2020-08-16 07:19:49
一、回顾Stream管道流map的基础用法 最简单的需求:将集合中的每一个字符串,全部转换成大写! List<String> alpha = Arrays.asList("Monkey", "Lion", "Giraffe", "Lemur"); //不使用Stream管道流 List<String> alphaUpper = new ArrayList<>(); for (String s : alpha) { alphaUpper.add(s.toUpperCase()); } System.out.println(alphaUpper); //[MONKEY, LION, GIRAFFE, LEMUR] // 使用Stream管道流 List<String> collect = alpha.stream().map(String::toUpperCase).collect(Collectors.toList()); //上面使用了方法引用,和下面的lambda表达式语法效果是一样的 //List<String> collect = alpha.stream().map(s -> s.toUpperCase()).collect(Collectors.toList()); System.out.println(collect); //[MONKEY, LION, GIRAFFE

【java基础】获取数组中的最大值和最小值

∥☆過路亽.° 提交于 2020-08-16 07:14:11
1. 使用 stream 将一个数组放进 stream 里面,然后直接调用 stream 里的 min 或 max 函数得到最大值。 @Test public void index2(){ int ages[] = { 18 , 23 , 21 , 19 , 25 , 29 , 17 }; int maxNum = Arrays.stream(ages).max().getAsInt(); System. out .println( " 最大值为: " + maxNum); } 2. 使用 collection 将数组转化为对象数组,即 int 转化为 Integer (需要使用数组转换)。 然后调用 Collection 里面的 min或max. @Test public void index3(){ int ages[] = { 18 , 23 , 21 , 19 , 25 , 29 , 17 }; Integer newAges[] = new Integer[ages.length]; for ( int i= 0 ;i<ages.length;i++ ) { newAges[i] = (Integer)ages[i]; } int maxNum = Collections.max(Arrays.asList(newAges)); System. out .println(

【Java学习】Java 初始化List的5种方式

末鹿安然 提交于 2020-08-16 06:50:44
Java初始化List的5种方法 第一种 /* * * 第一种方式 * 常规方式 */ @Test public void one(){ List <String> languages = new ArrayList<> (); languages.add( " Java " ); languages.add( " PHP " ); languages.add( " Python " ); System. out .println(languages); } 第二种 /* * * 第二种方式 * Arrays工具类 */ @Test public void two(){ List <String> languages = new ArrayList<>(Arrays.asList( " Java1 " , " PHP1 " , " Python1 " )); System. out .println(languages); } 第三种 /* * * 第三种方式 * Collections工具类 */ @Test public void three(){ List <String> apples = Collections.nCopies( 3 , " apple " ); System. out .println(apples); } 第四种 /* * * 第四种方式 匿名内部类

springboot sessionFactory 方式 配置 mybaits 扫描多个 mapper xml

自闭症网瘾萝莉.ら 提交于 2020-08-16 04:03:27
static final String MAPPER_LOCATION1 = "classpath:mybatis/dsno1/*/*.xml"; //扫描 目录1 static final String MAPPER_LOCATION2 = "classpath:mybatis/dsno2/*/*.xml"; //扫描 目录2 @Bean(name = "masterSqlSessionFactory") @Primary //www.1b23.com public SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource masterDataSource)throws Exception { final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(masterDataSource); sessionFactory.setMapperLocations(resolveMapperLocations()); sessionFactory.setConfigLocation(new DefaultResourceLoader()

Spring 数据库接口多实现类,根据数据库类型自动匹配对应的实体

扶醉桌前 提交于 2020-08-15 14:39:04
背景 常用的数据库有mysql,oracle,sql server还有非关系型数据库Redis等,如果希望一套框架能在不同的数据库平台上都能正常运行,而且希望不用做多大的改动. 设计思路 可以将数据库操作抽象成接口,又具体的实现类去完成数据库操作,对用不同的数据库调用不同的实现类,为了兼容mybatis框架,我的设计如下。在传统的框架基础上多加一层daoService,只用于对数据库操作。 后面实现需要知道的知识 1 Autowired注解:最常用的注解之一,该注解根据type注入,如果一个类有多个实现时,将报错; 2 Qualifier注解:与Autowired配合使用,当出现多个实现时,使用该注解指定具体实现类, 指定的实现类的BeanDifition的AutowireCandidate必须为true,否则会报错,找不到实现类,当然该属性默认是true,只是在我们这个系统中,将改变这个属性 2-1 在实际使用时,发现这样会有bug,列:如果db_type=mysql ,@Qualifier("xmlUserService")时,由于指定的实例不存在,系统启动时就会报错,对拦截器重新修改为设置Primary属性,当系统中用户没有指定时,我们就将与db_type相等的实现类的Primary设为 3 Primary注解:当有多个实现时,标记有该注解的实现类为主要类

Java大文件分片上传/多线程上传控件

牧云@^-^@ 提交于 2020-08-15 09:23:29
1,项目调研 因为需要研究下断点上传的问题。找了很久终于找到一个比较好的项目。 在GoogleCode上面,代码弄下来超级不方便,还是配置hosts才好,把代码重新上传到了github上面。 https://github.com/freewebsys/java-large-file-uploader-demo 效果: 上传中,显示进度,时间,百分比。 点击【Pause】暂停,点击【Resume】继续。 2,代码分析 原始项目: https://code.google.com/p/java-large-file-uploader/ 这个项目最后更新的时间是 2012 年,项目进行了封装使用最简单的方法实现了http的断点上传。 因为html5 里面有读取文件分割文件的类库,所以才可以支持断点上传,所以这个只能在html5 支持的浏览器上面展示。 同时,在js 和 java 同时使用 cr32 进行文件块的校验,保证数据上传正确。 代码在使用了最新的servlet 3.0 的api,使用了异步执行,监听等方法。 上传类UploadServlet @Component("javaLargeFileUploaderServlet") @WebServlet(name = "javaLargeFileUploaderServlet", urlPatterns = { "

Lambda表达式用法大比较: Scala和Java 8

怎甘沉沦 提交于 2020-08-14 20:12:56
最近几年Lambda表达式风靡于编程界. 很多现代编程语言都把它作为函数式编程的基本组成部分. 基于JVM的编程语言如Scala,Groovy还有Clojure把它们作为关键部分集成在语言中.现在Java8也加入了它们的行列. 有趣的是,对于JVM来说,Lambda表达式是完全不可见的,并没有匿名函数和Lamada表达式的概念,它只知道字节码是严格面向对象规范的.它取决于语言的作者和它的编译器在规范限制内创造出更新,更高级的语言元素. 我们第一次接触它是在我们要给Takipi添加Scala支持的时候, 我们不得不深入研究Scala的编译器.伴随着JAVA8的来临,我认为探究Scala和java编译器是如何实现Lambda表达式是非常有趣的事情.结果也是相当出人意料. 接下来,我展示一个简单的Lambda表达式,用于将字符串集合转化成字符串自身长度的集合。 Java的写法 – 1List names = Arrays.asList("1", "2", "3"); 2Stream lengths = names.stream().map(name -> name.length()); Scala的写法 – 1.val names = List("1", "2", "3") 2.val lengths = names.map(name =>name.length) 表面上看起来非常简单