arraylist

intellij idea 显示Arraylist 扩容过程 解决not showing null elements

落爺英雄遲暮 提交于 2020-03-17 19:04:43
设置显示Arraylist中的null完整查看初始数组大小,扩容过程 一、 老版本:Settings -> Debugger -> Data Views -> Arrays -> Hide null array elements 新版本:Settings -> Debugger -> Data Views -> Java 取消Hide null elements in array and collections 或者设置断点,开始调试后,在idea下方的提示信息区的Variables或Watches右键选择Customize Data Views,取消Hide null elements in array and collections 二、 点击选择idea下方的提示信息区的Variables内的ArrayList变量右键View as 选择object,展开ArrayList变量,展开elementData查看全部ArrayList内容 来源: https://www.cnblogs.com/zhuyeshen/p/12512633.html

Java中的List集合

亡梦爱人 提交于 2020-03-17 11:42:07
List 代表一个元素有序、且可重复的集合,集合中的每个元素都有其对应的顺序索引,并且List允许使用重复元素,可以通过索引来访问指定位置的集合元素,默认按元素的添加顺序设置元素的索引。 List 集合中也存在一些根据索引来操作集合元素的方法。 ArrayList 和 Vector 均是List接口的典型实现,区别在于: ①Vector是一个古老的集合,通常建议使用 ArrayList ②ArrayList 是线程不安全的,而 Vector 是线程安全的。 ③即使为保证 List 集合线程安全,也不推荐使用 Vector 首先需要导入Java中的java.util.ArrayList包` import java . util . ArrayList ; List集合的创建 List < String > list = new ArrayList < String > ( ) ; // //使用泛型 基本操作 list . add ( "b" ) ; //第一个索引下标为0 list . add ( "c" ) ; //索引下标为1 list . add ( "d" ) ; list . add ( "e" ) ; list . add ( "b" ) ; //允许使用重复元素 System . out . println ( list ) ; System . out .

Java 集合

你。 提交于 2020-03-17 01:16:34
1、说说List,Set,Map三者的区别? List:有序、元素可重复 Set:元素不能重复 Map: 一个元素即一个键值对,key唯一标识一个键值对,key不能重复,元素可以重复,key、value均可以是任意类型。 2、Arraylist 与 LinkedList 区别? 1. 是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是都不保证线程安全; 2. 底层数据结构: Arraylist 底层使用数组; LinkedList 底层使用双向链表(JDK1.6之前为循环链表,JDK1.7取消了循环。注意双向链表和双向循环链表的区别,下面有介绍到!) 3. 插入和删除是否受元素位置的影响: ① ArrayList 采用数组存储,插入和删除元素的时间复杂度受元素位置的影响。 比如:执行 add(E e) 方法的时候, ArrayList 会默认在将指定的元素追加到此列表的末尾,这种情况时间复杂度就是O(1)。但是如果要在指定位置 i 插入和删除元素的话( add(int index, E element) )时间复杂度就为 O(n-i)。因为在进行上述操作的时候集合中第 i 和第 i 个元素之后的(n-i)个元素都要执行向后位/向前移一位的操作。 ② LinkedList 采用链表存储,所以对于 add(E e) 方法的插入

软件工程作业二

一世执手 提交于 2020-03-16 21:03:14
码云项目地址 https://gitee.com/holmec/PersonalProject-Java PSP表格 PSP2.1 个人开发流程 预估耗费时间(分钟) 实际耗费时间(分钟) Planning 计划 20 15 · Estimate 明确需求和其他相关因素,估计每个阶段的时间成本 20 15 Development 开发 350 390 · Analysis 需求分析 (包括学习新技术) 40 35 · Design Spec 生成设计文档 20 15 · Design Review 设计复审 20 15 · Coding Standard 代码规范 20 10 · Design 具体设计 30 50 · Coding 具体编码 120 180 · Code Review 代码复审 40 15 · Test 测试(自我测试,修改代码,提交修改) 60 70 Reporting 报告 90 90 · 测试报告 40 40 · 计算工作量 20 20 · 并提出过程改进计划 30 30 解题思路描述 刚看到题目的时候先分析了一下这道题的需求: 统计文本的字符数 统计合法的单词数 统计合法行数 统计最多的10个单词及其词频 可见要统计首先得先从文件中获取数据,因为考虑到需要统计合法行数,所以我是想按行读取数据,而不是全部读取再来判断换行符之类的

09 Collection,Iterator,List,listIterator,Vector,ArrayList,LinkedList,泛型,增强for,可变参数,HashSet,LinkedHashSet,TreeSet

馋奶兔 提交于 2020-03-16 20:38:28
09 Collection,Iterator,List,listIterator,Vector,ArrayList,LinkedList,泛型,增强for,可变参数,HashSet,LinkedHashSet,TreeSetimport com.fly.bean.Student; public class Demo1_Array { public static void main(String[] args) { Student[] arr = new Student[5]; //创建引用类型数组 arr[0] = new Student("张三", 23); arr[1] = new Student("李四", 24); arr[2] = new Student("王五", 25); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); /*Student [name=张三, age=23] Student [name=李四, age=24] Student [name=王五, age=25] null null*/ } } } 集合框架: 集合的由来 * 数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给 我们提供了集合类,能存储任意对象,长度是可以改变的

Java入门基础整理(一)

主宰稳场 提交于 2020-03-16 20:23:46
hello 执行 javac Hello.java 生成 Hello.class // Hello 要与文件名相同 public class Hello{ // 程序执行的起点 public static void main(String[] args){ System.out.print("Hello world"); } } 数据类型 1.基本类型 整数型 byte short int long 浮点型float double 字符 char 布尔boolean 2.引用数据类型 字符串 数组 类 接口 关键字/标识符/常量 关键字 标识符 不使用数字开头 常量 字符串常量 双引号 'aaaaa' 整数常量 浮点数常量 字符常量 单引号引起来的 只能有一个 'a' 'b' 布尔常量 true false 空常量 null 变量 变量名称不能重复 float和long类型变量 F L 不能丢 byte short 数值不能超过范围 没有赋值的变量不能直接使用 变量使用不能超过作用域范围 public class Bianliang{ public static void main(String[] args) { int num1,num2; // int num1=1,num2=2; num1 =10; num2 = num1 +10; System.out.println

List集合框架

独自空忆成欢 提交于 2020-03-16 09:53:33
Vector和ArrayList以及LinkedList区别和联系,以及分别的应用场景? 1:Vector Vector的底层的实现其实是一个数组 protected Object[] elementData; 他是线程安全的,为什么呢? 由于经常使用的add()方法的源码添加 synchronized ,所以说他是一个 同步方法 ,就连不会对数据结构进行修改的get()方法上也加了synchronized public synchronized boolean add(E e) { modCount++; ensureCapacityHelper(elementCount + 1); elementData[elementCount++] = e; return true; } 如果不手动指定它的容量的话,它默认的容量是10 /** * Constructs an empty vector so that its internal data array * has size {@code 10} and its standard capacity increment is * zero. */ public Vector() { this(10); } 2.LinkedList LinkedList的底层其实是一个 双向链表 ,每一个对象都是一个Node节点

How to save a list of string in sublists according specific expression?

前提是你 提交于 2020-03-16 06:50:14
问题 I'm doing a script to save a read path in sublist. Let's suppose I have 400 file paths saved in a list, every path has the specific syntax Ci_whaterver.csv , then in my pathlist I have something like this: pathlist=[C1_01.csv,C1_02.csv,...,Cn_01.csv,Cn_02.csv] I would like to have finally a pathlistf ordered or sort with this situation: pathlistf=[[C1_01.csv,C1_02.csv,...],[C2_01.csv,C2_02.csv,...],...,[Cn_01.csv,Cn_02.csv,...]] I don't have idea to reorder the path to this way. Hello again,

ArrayList的add方法实现

廉价感情. 提交于 2020-03-15 17:34:06
ArrayList的底层是由数组实现,所以所有的操作都是围绕数组展开,要想理解add方法,就得先了解数组的增加,所以我们先实现一个数组的add,数组的添加可以从尾部增加或者其他位置插入, 如果在数组的尾部插入,只需要拿到数组的长度,直接在该索引处赋予元素值,下面自己手动简单实现一个在数组任意位置实现数组元素添加: public class MyArray { public static void main(String[] args) { /*创建一个数组*/ Object[] objectArray = new Object[10]; for (int i = 0; i < 10; i++) { objectArray[i] = i; } System.out.println("原数组"); for (int i = 0; i < objectArray.length; i++) { System.out.print(objectArray[i] + ","); } System.out.println(); System.out.println("插入后的数组"); Object[] newArray; try { newArray = MyArray.add(objectArray, 3, "hello"); for (int i = 0; i < newArray

Java 基础知识的一些易错点

泪湿孤枕 提交于 2020-03-14 15:25:06
1、正确使用 equals() Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。 String str = null; if (str.equals("abcd")) { ... } else { ... } 如果变量str为null,会抛出空指针异常,如果没有catch来捕获处理(我们一般不会在equals()上加try),程序直接就终止运行了。 abcd".equals(str) 把常量写在前面,“abcd”!=null,结果为false,不会抛出异常。 但2个都是变量呢? 最推荐下面的方式:使用工具类Objects(JDK7自带的) Objects.equals(str,"abcd") 就算2个都是变量,2个都是null,都不会抛出异常。如果2个都是null,null==null,返回true。 Objects的部分源码如下: public static boolean equals(Object a, Object b) { // 如果a==null的话此时a.equals(b)就不会得到执行,避免出现空指针异常。 return (a == b) || (a != null && a.equals(b)); } ||、&&都是断路的,如果||前面为true,就不会执行后面的判断;如果&&前面为false,就不会执行后面的判断。