arraylist

Flatten nested arrays. (Java)

爷,独闯天下 提交于 2020-01-13 04:15:14
问题 I'm struggling to create the right logic to flatten an array. I essentially want to duplicate parent rows for each child item in a nested array. The number of nested arrays could vary. I've been creating Java lists bc I find them easy to work with, but open to any solution. The nature of this problem is I'm starting with some nested JSON that I want to convert into a flat csv to load into a database table. Thanks for the help. Example: [1,2,[A,B,[Cat,Dog]],3] I've created the above as a List.

Android Studio doesn't see ArrayList class

吃可爱长大的小学妹 提交于 2020-01-13 03:56:50
问题 Android Studio 0.5.1 doesn't see ArrayList class. Quick Definition suggest me create a new one. Even when I try to import java.util.ArrayList; It works only if I set import java.util.*; , but Quick Definition still doesn't see. import android.app.Activity; import android.os.Bundle; import java.util.*; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayList

ArrayList源码分析

浪子不回头ぞ 提交于 2020-01-13 02:53:55
目录 ArrayList底层是采用数组 ArrayList构造函数 ArrayList add分析 ArrayList Get分析 ArrayList Remove分析 LinkedList底层是链表 LinkedList构造函数 LinkedList add分析 LinkedList Remove分析 LinkedList Get分析 ArrayList底层是采用数组 ArrayList构造函数 并未开辟空间,将elementData设置为空{ } public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; } ArrayList add分析 初次add 会将开辟一个长度为10的数组,之后每次添加,size+1为需要的容量,如果需要的容量>数组现在的长度 则数组需要再次扩容,按1.5倍扩容 比如:从add 1到add15中,add 1时候数组开辟,之后add 2到10时候 需要的容量<=数组长度10,此期间都不需要扩容,当add 11时,需要的容量11>数组长度10,此时数组扩容到15, 当add 12..15时,均不需扩容,add 16是再次按照1.5倍扩容........... public boolean add(E e) { ensureCapacityInternal(size +

Java 中的泛型

北慕城南 提交于 2020-01-13 01:56:02
泛型的概念 泛型:   泛型是一种末知的数据类型,当我们不知道使用什么数据类型的时候,可以使用泛型   泛型也可以看成是一个变量用来接收数据类型   E e:Element元素   T t:Type类型 是否使用泛型的对比 不使用泛型 /** * 创建集合对象,不使用泛型 * 好处: * 集合不使用泛型,默认的类型就是Object类型,可以存储任意类型的数据。 * 弊端: * 不安全,会引发异常 */ 好处(举例): public class Demo01Generic { public static void main(String[] args) { // 集合不使用泛型 ArrayList arrayList = new ArrayList(); // 向集合中添加数据,用于测试,这里添加了String类型的数据,和int类型的数据 arrayList.add("ABC"); arrayList.add(123); // 使用迭代器遍历集合 // 第一步:获取送代器的实现类对象,并使用Iterator接口接收 Iterator ite = arrayList.iterator(); // 第二步:使用hasNext方法和next方法遍历集合,取出的元素的类型默认是Object类型 while (ite.hasNext()) { System.out.println( ite

ArrayList源码 基本功能分析

人走茶凉 提交于 2020-01-13 01:23:26
ArrayList 继承与实现 空数组 EMPTY_ELEMENTDATA DEFAULTCAPACITY_EMPTY_ELEMENTDATA 异常 常规函数实现 contains indexOf lastIndexOf clone toArray add(int index, E element) remove(Object o) batchRemove(Collection<?> c, boolean complement) 内部类 注意事项 总结 继承与实现 函数名 介绍 AbstractList List接口 继承自Collection,祖父Iterable RandomAccess 标志接口,表明实现的这个接口的List集合是支持快速随机访问的。 Cloneable 接口 覆盖clone函数,能被克隆。 java.io.Serializable 接口 支持序列化,能够序列化传输 空数组   首先,我观察到了。为毛定义了两个空数组呢~( ̄▽ ̄)。 private static final Object [ ] EMPTY_ELEMENTDATA = { } ; private static final Object [ ] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = { } ;   既然是list有空的情况和非空的情况

java基础-泛型的优点

早过忘川 提交于 2020-01-13 00:00:26
1、性能   对值类型使用非泛型集合类,在把值类型转换为引用类型,和把引用类型转换为值类型时,需要进行装箱和拆箱操作。装箱和拆箱的操作很容易实现,但是性能损失较大。假如使用泛型,就可以避免装箱和拆箱操作。 1 ArrayList list=new ArrayList(); 2 list.Add(20); //装箱,list存放的是object类型元素,须将值类型转化为引用类型 3 int i=(int)list[0]; //拆箱,list[0]的类型是object,要赋值就得把引用类型转化为值类型   如果换成泛型编程,就不会有装箱和拆箱的性能损失。 1 List<T> list=new List<int>(); 2 list.Add(20); //因为指定了用int来实例化,因此不必装箱 3 int i=list[0]; //同样地,访问时也不需要拆箱 2、类型安全   与ArrayList类一样,如果使用对象,可以在这个集合中添加任意类型。 如果使用非泛型编程,如下代码,就有可能在某些情况下会发生异常。 1 ArrayList list=new ArrayList(); 2 list.Add(20); 3 list.Add("string"); 4 list.Add(new MyClass()); 5 6 foreach(int i in list) 7 { 8 Console

Array和ArrayList的区别

♀尐吖头ヾ 提交于 2020-01-12 23:55:33
Array是数组,可以存储基本类型和对象,ArrayList是集合,只能存储对象. Array初始化是指定大小的,ArrayList初始化大小是固定的. 来源: CSDN 作者: 乐于求知 链接: https://blog.csdn.net/nlv123/article/details/103949182

数据结构之线性表之ArrayList源码学习

流过昼夜 提交于 2020-01-12 22:28:17
好久没写博客,一直是写在笔记上面。 我一直用的JDK8,所以今天的源码分析也是基于JDK8。 ArrayList简介 ArrayList 是一个 动态数组队列 。与Java中的数组相比,它的容量能 动态增长 。它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。 ArrayList 的爸爸是AbstractList,实现了List。AbstractList 提供了相关的添加、删除、修改、遍历等功能。 ArrayList 实现了RandmoAccess接口,支持快速随机访问。 ArrayList 实现了Cloneable接口,即覆盖了函数clone(),能被克隆。 ArrayList 实现java.io.Serializable接口,这意味着ArrayList支持序列化,能通过序列化去传输。 和Vector不同,ArrayList中的操作不是线程安全的!所以,建议在单线程中才使用ArrayList,而在多线程中可以选择Vector或者CopyOnWriteArrayList。 ArrayList的属性 序列化id 默认初始的容量 数组长度 ......... public class ArrayList<E> extends AbstractList<E> implements

ArrayList

懵懂的女人 提交于 2020-01-12 21:53:54
一、自动增加大小 1. 检查容量 2. 如果不够,新建一个更长的数组 3. 把老的数据,使用Arrays.copyOf方法,拷贝到新的数组 4. 引用指向新的数组 二、ArrayList使用场景 1. ArrayList的插入和删除操作,会调用System.arrayCopy()方法,拷贝数组效率低 2. 适合读数据比较多,不会频繁插入和删除的场景 3. 插入和删除操作比较频繁的情况下,使用LinkedList,因为链表不适合访问,而适合插入和删除 三、安全 1. 当做参数时,需要考虑原始的arrayList会不会改变 2. 需要把参数做一个拷贝,方法里使用这个拷贝 四、复制 1. clone()方法 2. 构造方法,把另一个ArrayList当做参数传入 3. Collection的copy方法 来源: https://www.cnblogs.com/june0816/p/6575232.html

android 优秀图表库之MPAndroidChart

ぃ、小莉子 提交于 2020-01-12 17:03:26
MPAndroidChart 1.在项目当中很多时候要对数据进行分析就要用到图表,在gitHub上有很多优秀的图表开源库,这里就简单介绍一下MPAndroidChart。 他可以实现图表的拖动,3D,局部查看,数据动态展示等功能 代码下载: 下载 2.贴一些效果图出来: linechart 填充式lineChart 单条线的LineChart BarChart2D BarChart3D PieChart ScatterChart 3.使用方法在giHub上下载这个库: https://github.com/PhilJay/MPAndroidChart 你在查看它给的示例的时候可能项目会出错,我这里是环境编码问题,改成utf-8就OK了 xml中 1 <com.github.mikephil.charting.charts.PieChart 2 android:id="@+id/spread_pie_chart" 3 android:layout_width="match_parent" 4 android:layout_height="320dip" /> activity中 初始化 1 ColorTemplate mCt; 2 mCt = new ColorTemplate(); 3 mCt.addDataSetColors(ColorTemplate.PASTEL_COLORS