ASList

Java 向数组中添加一个元素

半世苍凉 提交于 2020-08-14 18:00:12
方法 一般数组是不能添加元素的,因为他们在初始化时就已定好长度了,不能改变长度。 向数组中添加元素思路: 第一步:把 数组 转化为 集合 list = Arrays.asList(array); 第二步:向 集合 中添加元素 list.add(index, element); 第三步:将 集合 转化为 数组 list.toArray(newArray); 例子: 将数组转化为集合1 String[] arr = {"ID", "姓名", "年龄" }; // 定义数组 List<String> list1 = Arrays.asList(arr); // 将数组转化为集合 1 View Code 定义需要添加元素的集合2 List<String> list2 = new ArrayList<> (); list2.add( "性别" ); list2.add( "出生日期" ); // 定义集合 2 ,并向其中添加元素: 性别、出生日期 View Code 定义一个新集合,将集合1、2中的元素添加到新集合 List<String> titleList = new ArrayList<String> (); // 定义新集合 titleList.addAll(list1); // 将集合 1 中的元素添加到新集合中 titleList.addAll(list2); // 将集合 2

Spring Security 权限管理

夙愿已清 提交于 2020-08-14 13:07:15
概述 权限是大部分的后台管理系统都需要实现的功能,用户控制不同的角色能够进行的不同的操作。Spring Security的可以进行用户的角色权限控制,也可以进行用户的操作权限控制。在之前的代码实现上,我们仅仅只是实现用户的登录,在用户信息验证的时候使用UserDetailsService,但是却一直忽略了用户的权限。 一. 启动类配置 /** * 开启方法的注解安全校验。 * securedEnabled @Secured("ROLE_abc") 该注解是Spring security提供的 * jsr250Enabled @RolesAllowed("admin") 该注解是 JSR250 支持的注解形式 * prePostEnabled @PreAuthorize("hasAuthority('user:add') */ @SpringBootApplication @EnableGlobalMethodSecurity ( securedEnabled = true , jsr250Enabled = true , prePostEnabled = true ) public class SecurityApplication { public static void main ( String [ ] args ) { SpringApplication . run (

java泛型中可变参数的是使用

女生的网名这么多〃 提交于 2020-08-14 12:02:04
Arrays工具类中有个静态的方法 : 1、public static<T>ListL<T> asList( T ...a):返回指定数组支持的固定大小的列表 2、返回的集合不能做曾删改操作,可以做修改操作 List接口中有个静态方法 1、public static<E> List<E> of (E ... element):返回包含任意数量的不可变列表 Set接口中有个静态方法 2、public static <E> Set<E> of(E...element ) 来源: oschina 链接: https://my.oschina.net/u/4361381/blog/4458274

恕我直言你可能真的不会java第7篇:像使用SQL一样排序集合

时光怂恿深爱的人放手 提交于 2020-08-14 06:33:26
在开始之前,我先卖个关子提一个问题:我们现在有一个Employee员工类。 [@Data](https://my.oschina.net/difrik) @AllArgsConstructor public class Employee { private Integer id; private Integer age; //年龄 private String gender; //性别 private String firstName; private String lastName; } 你知道怎么对一个Employee对象组成的List集合, 先按照性别字段倒序排序,再按照年龄的倒序 进行排序么?如果您不知道4行代码以内的解决方案(其实是1行代码就可以实现,但笔者格式化为4行),我觉得您有必要一步步的看下去。 一、字符串List排序 cities是一个字符串数组。 注意london的首字母是小写的。 List<String> cities = Arrays.asList( "Milan", "london", "San Francisco", "Tokyo", "New Delhi" ); System.out.println(cities); //[Milan, london, San Francisco, Tokyo, New Delhi] cities.sort

《Java8实战》笔记(03):Lambda表达式

本秂侑毒 提交于 2020-08-14 03:01:17
本文源码 Lambda 管中窥豹 可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。 Lambda表达式可以让你十分简明地传递代码。 Lambda组成结构 参数列表——这里它采用了Comparator中compare方法的参数,两个Apple。 箭头——箭头->把参数列表与Lambda主体分隔开。 Lambda主体——比较两个Apple的重量。表达式就是Lambda的返回值了。 Lambda的基本语法是 (parameters) -> expression 或(请注意语句的花括号) (parameters) -> { statements; } Java8先前: Comparator<Apple> byWeight = new Comparator<Apple>() { public int compare(Apple a1, Apple a2){ return a1.getWeight().compareTo(a2.getWeight()); } }; Java8之后(用了Lambda表达式): Comparator<Apple> byWeight = (Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight());

Github即将破百万的PDF:编写高质量代码改善JAVA程序的151个建议

非 Y 不嫁゛ 提交于 2020-08-14 02:48:08
在通往"Java技术殿堂"的路上,本书将为你指点迷津!内容全部由Java编码的最佳 实践组成,从语法、程序设计和架构、工具和框架、编码风格和编程思想等五大方面,对 Java程序员遇到的各种棘手的疑难问题给出了经验性的解决方案,为Java程序员如何编写 高质量的Java代码提出了151条极为宝贵的建议。对于每一个问题,不仅以建议的方式从 正反两面蛤出了被实践证明为十分优秀的解决方案和非常精糕的解决方案,而且还分析了 问题产生的根源,犹如醍醐灌顶,让人豁然开朗。 全书-共12章,第1~ 3章针对Java语法本身提出了51条建议,例如覆写变长方法 时应该注意哪些事项、final 修饰的常量不要在运行期修改、匿名类的构造函数特殊在什么 地方等:第4~9章重点针对JDK API的使用提出了80条建议,例如字符串的拼接方法该 如何选择、枚举使用时有哪些注意事项、出现NullPointerException该如何处理、泛型的多 重界限该如何使用、多线程编程如何预防死锁,等等r第10~ 12章针对程序性能、开源 的工具和框架、编码风格和编程思想等方面提出了20条建议。 希望本文能让你少走一些弯路 您是否曾经为了提供一个"One Line"的解决方案而彻夜地查看源代码?现在您不用了。 您是否曾经为了理解某个算法而冥思苦想、阅览群书?现在您不用了。 您是否曾经为了提升0

记录下今年的给公司内部中间件团队还有公司外部开源项目修代码的两次经历

生来就可爱ヽ(ⅴ<●) 提交于 2020-08-13 16:08:27
最近做了两个事情相比在项目里面写CRUD有意思些,就是看一些优秀框架的源代吗,然后发现问题并修改提交PR。因为SpringCloud组件Eureka的闭源,所有我们项目有必要看看其他相关的优秀开源的项目,刚好Alibaba Nacos这个开源项目现在比较火热,所以我也花时间简单的看了看他们的框架,有意思的是我在看源码的过程也发现了一些问题,加上我本人有代码洁癖,所以把我最不能忍的一个问题拎出来给修改了,并提交的PR给到Alibaba Nacos团队review,最后Alibaba Nacos 团队采用的我的修改建议并合并了代码。中间还有个小插曲,因为不知道给开源项目贡献代码需要签订CLA,而有过几次沟通。然而比较碰巧的是,我在查看公司内部中间件团队的代码时也发现的类似的可能会造成性能问题的代码,这也是促成我这今天随笔的原因。 先说下我争对公司中间件团队的项目代码修改经历,因为不太方便放项目的代码,所以只能简单描述下,修改了什么 伪代码大概如下: xxxx()..stream().forEach(e -> { addApi(e.getxxx())}); addApi(Api api) { versionMap.put(api.getVersionNumber(), new ArrayList<> (Arrays.asList(api))); } 主要修改的的是把 addApi()

Java知识回顾-基础知识(3)

北城以北 提交于 2020-08-13 08:55:58
1.异常 Error/错误, 是程序无法处理的错误,通常和代码执行者的操作无关,在应用程序的控制和处理能力之外 Exception/异常, 是程序本身可以处理的异常 RuntimeException是Exception的一个重要子类,由jvm抛出 异常能被程序本身处理,而错误无法处理 Throwable 常用的方法 public String getMessage()返回异常发生时的简要信息 public String toString() 返回异常发生时的详细信息 public void printStackTrace() 在控制台打印Throwable对象封装的一场新 异常处理 使用try-catch-finally来扑获异常 try语句 用来扑获异常,后边可以0个或者多个catch块, 如果没有catch块则必须根一个finally catch语句 用来处理try扑获到的异常 finally 语句 无论是扑获/处理异常,finally的语句都会被执行,当try或者catch中有return语句 ,finally的语句块将在方法返回前执行,如果finally中也有return 语句 则会覆盖 try/catch中的return finally不执行: 1,在finally语句块的第一场发生异常 2,在finllay语句之前发生了System.exit(int),程序退出.

十个便捷的单行代码编程技巧

假如想象 提交于 2020-08-13 07:11:03
1、对列表/数组中的每个元素都乘以2 // www.1b23.com Range是半开区间 int [] ia = range(1, 10).map(i -> i * 2).toArray(); List<Integer> result = range(1, 10).map(i -> i * 2).boxed().collect(toList()); 2、计算集合/数组中的数字之和 range(1, 1000).sum(); range(1, 1000).reduce(0, Integer::sum); Stream.iterate(0, i -> i + 1).limit(1000).reduce(0, Integer::sum); IntStream.iterate(0, i -> i + 1).limit(1000).reduce(0, Integer::sum); 3、验证字符串是否包含集合中的某一字符串 final List<String> keywords = Arrays.asList("brown", "fox", "dog", "pangram"); final String tweet = "The quick brown fox jumps over a lazy dog. #pangram http://www.rinkworks.com/words

字节跳动笔试算法面试题:JAVA语言的三种实现方式,哪一种最优?

回眸只為那壹抹淺笑 提交于 2020-08-13 04:41:04
在招聘首页上写着这么一句话。“和优秀的人,做有挑战的事”。 其次,我们可以看一下它招聘的研发职位要求,我这边找了两个,一个后台研发,一个广告算法两个职位。在职位描述中,可以看到数据结构和数据算法是必备项。 最后,就算不为了进入字节跳动,如果你抽一定的时间来学习算法,也可以加强自己的思维逻辑能力,对自己的技能提升也有非常大的帮助,会一门技术就多一条出路。 字节跳动初面笔试算法题目-字符串反转 方法一:JAVA语言特性 看到这样的题目,首先我们应该想到使用最基础的方法来解决这个问题。 利用JAVA语言提供的特性,比如先通过String的split()方法拆分,然后集合工具类Collections.reverse()方法,最后再返回字符串。 那如何实现呢? 请看代码: public static void main(String[] args) { String str="the sky is blue"; //使用\\s+正则来以空格拆分字符串 String[] strs = str.split("\\s+"); //使用工具类Arrays.asList()将其转换为List集合 List<String> strLists = Arrays.asList(strs); //使用Collections.reverse()方法反转内容 Collections.reverse