Java之arrayList 方法二

  1. 类型不兼容的错误集合
package com.yuanzijian02;

import java.util.ArrayList;

public class ArrayList2 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		ArrayList list = new ArrayList();
		list.add("hello");
		list.add(new Integer(2));

		String str = (String)list.get(0);
		String in = (String)list.get(1);
	}

}

执行结果

Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
	at com.yuanzijian02.ArrayList2.main(ArrayList2.java:14)

2.从集合中取出数据,然后相加

package com.yuanzijian03;

import java.util.ArrayList;

public class ArrayListTest3 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		ArrayList list = new ArrayList();
		list.add(new Integer(3));
		list.add(new Integer(4));
		list.add(new Integer(5));
		list.add(new Integer(6));
		int sum = 0;
		for(int i = 0; i< list.size(); i++){
			int value  = ((Integer)list.get(i)).intValue();
			sum += value;
		}
		System.out.println(sum);
	}

}

执行结果

18

3.重写toString()方法

package com.yuanzijian05;

import java.util.ArrayList;

public class ArrayListTest5 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		ArrayList list = new ArrayList();
		list.add(new Point(2,3));
		list.add(new Point(2,2));
		list.add(new Point(2,4));
		list.add(new Point(2,5));
		for(int i = 0; i < list.size(); i++){
			System.out.println(list.get(i));
		}
		System.out.println(list);
	}
}
class Point{
	int x;
	int y;
	Point(int x, int y){
		this.x = x;
		this.y = y;
	}
	@Override
	public String toString() {
		// TODO 自动生成的方法存根
		return "x = " + this.x + ", y = " + this.y;
	}
}

执行结果

x = 2, y = 3
x = 2, y = 2
x = 2, y = 4
x = 2, y = 5
[x = 2, y = 3, x = 2, y = 2, x = 2, y = 4, x = 2, y = 5]

4.在集合中存放的依然是对象的引用而不是对象的本身

5.ArrayList底层采用数组实现,当使用不带参数的构造方法生成ArrayList对象时,实际上会在底层生成一个长度为10的Object类型的数组

6.如果增加的元素个数超过了10个个,那么ArrayList底层会新生成一个数组,长度为原数组的1.5倍+1,然后将原数组的内容复制到新数组当中,并且后续增加的内容会放到新的数组当中,但新数组无法容纳增加的元素时,重复该过程

7.对于ArrayList元素的删除操作,需要将被删除元素的后续向前移动,这是一个代价比较高的元素

8.集合当中只能放置对象引用,无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合当中

9.集合当中放置的都是Object类型,因此取出来的也是Object类型,那么必须要使用强制类型转换将其转换为真正的类型(放置进去的类型)。

时间: 2024-10-03 19:55:59

Java之arrayList 方法二的相关文章

java 容器 arraylist 使用方法

1. ArrayList概述: ArrayList 是一个数组队列,相当于 动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口. ArrayList 继承了AbstractList,实现了List.它是一个数组队列,提供了相关的添加.删除.修改.遍历等功能. ArrayList 实现了RandmoAccess接口,即提供了随机访问功能.Rand

Java 容器 & 泛型:二、ArrayList 、LinkedList和Vector比较

Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket 继续上一篇的容器文章认识容器,泥瓦匠慢慢带你们走进List的容器解说.今天泥瓦匠想说说 ArrayList .LinkedList和Vector比较. 一.List回顾 序列(List),有序的Collection,正如它的名字一样,是一个有序的元素列表.确切的讲,列表通常允许满足 e1.equals(e2) 的元素对 e1 和 e2,并且如果列表本身允许 null 元素的话,通常它们允许多个 nu

java之ArrayList的toArray方法

ArrayList是Java在中使用频率非常高的一个方法.我们在使用ArrayList的时候,经常需要将ArrayList中的对象转换为一个数组. java已经对ArrayList进行了很好的封装,只需要调用ArrayList的toArray方法就可以从ArrayList对象中提取存放的对象的数组. ArrayList重载了如下两个toArray方法: public Object[] toArray() { return Arrays.copyOf(elementData, size); } p

Java 集合框架(二)—— ArrayList

二.数组列表 —— ArrayList 1.构造方法 ArrayList 是 Java 中的动态数组,底层实现就是对象数组,只不过数组的容量会根据情况来改变. 它有个带 int 类型参数的构造方法,根据传入的参数,扩展初始化的数组容量,这个方法是推荐使用的,因为如果预先知道数组的容量,可以设置好初始值,而不用等每次容量不够而扩容,减少 Arrays.copyOf 的次数: 它的很多方法的实现都是依靠 Arrays 这个工具类完成的,足以体现它与数组之间的密切关系. 比如有个带 Collectio

java 遍历arrayList的四种方法

package com.test; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public class ArrayListDemo {    public static void main(String args[]){        List<String> list = new ArrayList<String>();        list.add("luo

JAVA之旅(二十二)——Map概述,子类对象特点,共性方法,keySet,entrySet,Map小练习

JAVA之旅(二十二)--Map概述,子类对象特点,共性方法,keySet,entrySet,Map小练习 继续坚持下去吧,各位骚年们! 事实上,我们的数据结构,只剩下这个Map的知识点了,平时开发中,也是能看到他的,所以还是非常值得去学习的一个知识点的,我们直接开车了 一.Map概述 泛型< k,v> 键值对,映射关系 基本特点 该集合存储键值对,是一对一对往里存,而且要保证键的唯一性 1.添加 put(key ,values) putAll() 2.删除 clear() remove(ob

Java基础——ArrayList与LinkedList(二)

今天练习ArrayList与LinkedList,在网上看到有关它俩应用效率的题型.觉得很有价值,保留一下. 1 import java.util.ArrayList; 2 import java.util.LinkedList; 3 import java.util.List; 4 5 public class CollT5 { 6 static final int N = 50000; 7 8 static long timeList(List<Object> list) { 9 10 l

二十种特征变换方法及Spark MLlib调用实例(Scala/Java/python)(二)

VectorIndexer 算法介绍: VectorIndexer解决数据集中的类别特征Vector.它可以自动识别哪些特征是类别型的,并且将原始值转换为类别指标.它的处理流程如下: 1.获得一个向量类型的输入以及maxCategories参数. 2.基于原始数值识别哪些特征需要被类别化,其中最多maxCategories需要被类别化. 3.对于每一个类别特征计算0-based类别指标. 4.对类别特征进行索引然后将原始值转换为指标. 索引后的类别特征可以帮助决策树等算法处理类别型特征,并得到较

黑马程序员——java基础 ArrayList集合基本方法演示

java基础 ArrayList集合基本方法演示 import java.util.ArrayList; import java.util.Iterator; public class ArrayListDemos { public static void main(String[] args) { // 创建一个新的容器 ArrayList al = new ArrayList(); al.add("abc1"); al.add("abc2"); al.add(&