arraylist

java中list、set和map 的区别

只谈情不闲聊 提交于 2020-02-23 05:06:27
转载自http://webservices.ctocio.com.cn/java/435/8907435.shtml 本文主要介绍java中list,set和map 的区别 。   List按对象进入的顺序保存对象,不做排序或编辑操作。Set对每个对象只接受一次,并使用自己内部的排序方法(通常,你只关心某个元素是否属于Set,而不关心它的顺序--否则应该使用List)。Map同样对每个元素保存一份,但这是基于"键"的,Map也有内置的排序,因而不关心元素添加的顺序。如果添加元素的顺序对你很重要,应该使用 LinkedHashSet或者LinkedHashMap.   List的功能方法   实际上有两种List: 一种是基本的ArrayList,其优点在于随机访问元素,另一种是更强大的LinkedList,它并不是为快速随机访问设计的,而是具有一套更通用的方法。   List : 次序是List最重要的特点:它保证维护元素特定的顺序。List为Collection添加了许多方法,使得能够向List中间插入与移除元素(这只推荐LinkedList使用。)一个List可以生成ListIterator,使用它可以从两个方向遍历List,也可以从List中间插入和移除元素。   ArrayList : 由数组实现的List。允许对元素进行快速随机访问

java中list、set和map 的区别<转>

烈酒焚心 提交于 2020-02-23 05:02:35
  List按对象进入的顺序保存对象,不做排序或编辑操作。   Set中的所有对象均不相同(这里的不同通常指调用类方法equals()将返回false),并使用自己内部的排序方法(通常,你只关心某个元素是否属于Set,而不关心它的顺序--否则应该使用List)。   Map同样对每个元素保存一份,但这是基于"键"的,Map也有内置的排序,因而不关心元素添加的顺序。如果添加元素的顺序对你很重要,应该使用LinkedHashSet或者LinkedHashMap.   List的功能方法   实际上有两种List: 一种是基本的ArrayList,其优点在于随机访问元素,另一种是更强大的LinkedList,它并不是为快速随机访问设计的,而是具有一套更通用的方法。   List : 次序是List最重要的特点:它保证维护元素特定的顺序。List为Collection添加了许多方法,使得能够向List中间插入与移除元素(这只推荐LinkedList使用。)一个List可以生成ListIterator,使用它可以从两个方向遍历List,也可以从List中间插入和移除元素。   ArrayList : 由数组实现的List。允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。ListIterator只应该用来由后向前遍历ArrayList,而不是用来插入和移除元素

Java代码常见优化方案

吃可爱长大的小学妹 提交于 2020-02-23 03:42:30
Java代码常见优化方案 首先,良好的编码规范非常重要。在 java 程序中,访问速度、资源紧张等问题的大部分原因,都是代码不规范造成的。 单例的使用场景 单例模式对于减少资源占用、提高访问速度等方面有很多好处,但并不是所有场景都适用于单例。 简单来说,单例主要适用于以下三个方面: 多线程场景,通过线程同步来控制资源的并发访问。 多线程场景,控制数据共享,让多个不相关的进程或线程之间实现通信(通过访问同一资源来控制)。 控制实例的产生,单例只实例化一次,以达到节约资源的目的; 不可随意使用静态变量 当某个对象被定义为 static 变量,那么 GC 通常是不会回收这个对象所占有的内存。 示例如下: public class A { private static B b = new B(); } 此时静态变量 b 的生命周期与 A 类同步,即如果 A 类不卸载,b 对象会常驻内存,直到程序终止。 创建 Java 对象使用注意事项 根据业务使用场景,尽量避免在循环中 new 对象。 这是因为系统要花费时间来创建对象,而且还要花时间对这些对象进行管理和垃圾回收。所以在可以控制的范围内,尽量保证最大限度地重用对象,最好能用基本的数据类型或数组来替代对象。 final 修饰符使用注意事项 final 修饰符的类是不可派生的,即不可被继承。在 java 核心代码中,有很多 被 final

常用类的课后作业

邮差的信 提交于 2020-02-22 23:19:06
1、随机输出班上5名学生的学号。package JAVAclas; import java.util.*; public class Jav { public static void main(String[] args) { Random a=new Random(); int num=0; for(int i=0;i<5;i++) { num=a.nextInt(56); System.out.println("输出随机学号:"+num); } } }2、获取当前系统时间,运用subString()方法,显示年份。 package JAVAclas; import java.util.*; import java.text.*; public class Jav2 { public static void main(String[] args) { Date dt=new Date(); SimpleDateFormat t=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E"); System.out.println("当前系统时间:"+t.format(dt)); } }3、使用Calendar类显示当前日期。 package JAVAclas; import java.util.*; public class Javs3 {

去除ArrayList集合中的重复字符串元素

戏子无情 提交于 2020-02-22 19:09:47
第一种方法: ArrayList array = new ArrayList ( ) ; array.add ( "hello" ) ; array.add ( "world" ) ; array.add ( "java" ) ; array.add ( "world" ) ; array.add ( "java" ) ; array.add ( "world" ) ; array.add ( "world" ) ; array.add ( "world" ) ; array.add ( "world" ) ; array.add ( "java" ) ; ArrayList newArray = new ArrayList ( ) ; Iterator it = array.iterator ( ) ; while ( it.hasNext ( )) { String s = ( String ) it.next ( ) ; if ( ! newArray.contains ( s )) { newArray.add ( s ) ; } } for ( int i = 0 ; i < newArray.size ( ) ; i++ ) { String s1 = ( String ) newArray.get ( i ) ; System.out.println ( s1 ) ;

Java类型Type 之 ParameterizedType,GenericArrayType,TypeVariabl,WildcardType

随声附和 提交于 2020-02-22 16:32:52
Java类型中ParameterizedType,GenericArrayType,TypeVariabl,WildcardType详解 和反射+泛型有关的接口类型 java.lang.reflect.Type:java语言中所有类型的公共父接口 java.lang.reflect.ParameterizedType java.lang.reflect.GenericArrayType java.lang.reflect.WildcardType 1. Type直接子接口 ParameterizedType,GenericArrayType,TypeVariable和WildcardType四种类型的接口 ParameterizedType: 表示一种参数化的类型,比如Collection GenericArrayType: 表示一种元素类型是参数化类型或者类型变量的数组类型 TypeVariable: 是各种类型变量的公共父接口 WildcardType: 代表一种通配符类型表达式,比如?, ? extends Number, ? super Integer【wildcard是一个单词:就是“通配符”】 2. Type直接实现子类 :Class类 3. java.lang.reflect.Type接口 Type所有类型指代的有: 原始类型 (raw types)【对应Class】

二叉树中和为某一值的路径

只愿长相守 提交于 2020-02-22 14:45:41
题目描述 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 思路 时间复杂度O(n),空间复杂度O(n)。 代码 import java.util.ArrayList; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { private ArrayList<ArrayList<Integer>> lists = new ArrayList<ArrayList<Integer>>(); private ArrayList<Integer> list = new ArrayList<Integer>(); public ArrayList<ArrayList<Integer>> FindPath(TreeNode root,int target) { if(root == null) return lists; list.add(root.val); target -= root.val; if(target == 0 &&

软工实践寒假作业(2/2)

◇◆丶佛笑我妖孽 提交于 2020-02-21 18:51:38
软工实践寒假作业(2/2)-疫情统计程序 这个作业属于哪个课程 2020春|S班 这个作业要求在哪里 软工实践寒假作业(2/2) 这个作业的目标 学习单元测试的基础理论和相应技术、对程序进行测试的覆盖率分析和性能分析并优化、学习Personal Software Process (PSP, 个人开发流程,或称个体软件过程) 作业正文 .... 其他参考文献 Commint | .gitignore | gitDesktop Part-1 GitHub仓库地址 Github仓库 Part-2 PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 50 Estimate 估计这个任务需要多少时间 1850 1805 Development 开发 800 850 Analysis 需求分析 (包括学习新技术) 300 270 Design Spec 生成设计文档 60 60 Design Review 设计复审 30 10 Coding Standard 代码规范 (为目前的开发制定合适的规范) 60 40 Design 具体设计 90 150 Coding 具体编码 360 480 Code Review 代码复审 30 30 Test 测试(自我测试,修改代码,提交修改) 60

java ArrayList集合简单使用

我的未来我决定 提交于 2020-02-21 12:17:42
import java.util.ArrayList; public class homework{ public static void main(String[] args){ ArrayList<Goods> a = new ArrayList<Goods>(); a.add(addShop("小米",6.5,2000,50)); a.add(addShop("华为",6.6,3000,45)); a.add(addShop("魅族",5.5,1499,20)); for(int i = 0;i<a.size();i++){ System.out.println("品牌:"+a.get(i).name+" 尺寸:"+a.get(i).size+" 价格:"+a.get(i).price+" 库存:"+a.get(i).inventory); } } public static Goods addShop(String name,double size,double price,int inventory){ Goods shopping = new Goods(); shopping.name=name; shopping.size=size; shopping.price=price; shopping.inventory=inventory; return

剑指offer——最小的k个数

十年热恋 提交于 2020-02-21 07:16:41
题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 思路:题目很简单,排序就行。 import java . util . ArrayList ; import java . util . Arrays ; public class Solution { public ArrayList < Integer > GetLeastNumbers_Solution ( int [ ] input , int k ) { ArrayList < Integer > ans = new ArrayList < > ( ) ; if ( k > input . length ) return ans ; Arrays . sort ( input ) ; for ( int i = 0 ; i < k ; i ++ ) ans . add ( input [ i ] ) ; return ans ; } } 或者用Treeset更快一点 import java . util . ArrayList ; import java . util . * ; public class Solution { public ArrayList < Integer > GetLeastNumbers_Solution (