泛型,迭代器,LinkedList<E>
1 <e>里面只能填类,不能用基本数据类型,不过integer 这样的的也行
2在模板类(泛型类中)class demo<e>由于不知道e是那个,所有通常都是重写大家都有的toString()方法来调用
泛型的作用主要是为了建立具有类型安全的数据结构
如果没有泛型
LinkedList 使用add方法的时候,由于所有类都是object的子类,所以都可以添加
String s=(String) linkedList1.get(i)需要类型转换
然而有了泛型就没有上面的问题,LinkedList<String>已经说明了都是String
测试代码
package cgfg; public class Test{
public static void main(String args[]){
bb test1=new bb(1);
bb test2=new bb(2);
demo<bb> demo1=new demo<bb>();
demo<bb> demo2=new demo<bb>();
demo1.setE(test1);
demo2.setE(test2);
demo1.show();
demo2.show(); }
} class demo<E>{
E e;
void setE(E a){
e=a;
}
void show(){
String s=e.toString();
double a=Double.parseDouble(s)*2;
System.out.println(a);
}
} class bb{
double a;
bb(double a){
this.a=a;
}
public String toString(){
return ""+a; }
}
迭代器
迭代器比手动遍历快,一般的迭代器用法
Iterator<String> iterator1=list1.iterator();
for(;iterator1.hasNext();){
String s=iterator1.next();
}
完整测试
package cgfg; import java.util.Iterator;
import java.util.LinkedList; public class Test{
public static void main(String args[]){
LinkedList<String> list1=new LinkedList<String>();
for(int i=0;i<60000;i++){
list1.add(i+"");
}
Iterator<String> iterator1=list1.iterator();
long start=System.currentTimeMillis();
for(;iterator1.hasNext();){
String s=iterator1.next();
}
long end=System.currentTimeMillis();
System.out.println(end-start);
start=System.currentTimeMillis();
for(int i=0;i<list1.size();i++){
String s=list1.get(i);
}
end=System.currentTimeMillis();
System.out.println(end-start);
}
}
LinkedList<e>常用方法
public boolean add(E e)
public void add(index ,E e)//在一个位置添加
public void clear()//全部清除
public E remove(int index)//按位置删除
public boolean remove(E e)//按值删除
public E get(index)//得到该位置的值
public int indexOf(E e)//得到该值的位置
public E set(int a,E e)//把 a 位置的值改为 e
public int size()//返回大小
public E getFirst()
public E getLast()
public E removeFirst()
public E removeLast()
public Object clone()//返回一个克隆的链表
泛型,迭代器,LinkedList<E>的更多相关文章
- Java—增强for循环与for循环的区别/泛型通配符/LinkedList集合
增强for循环 增强for循环是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的. 它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作. ...
- 迭代器Iterator、for循环遍历、泛型
java.util.Collection接口 是集合的最顶层的接口,定义了集合共性的方法 接口无法直接创建对象,使用多态的方式创建对象 Collection<集合中的数据类型(泛型)> c ...
- Java泛型学习笔记--Java泛型和C#泛型比较学习(一)
总结Java的泛型前,先简单的介绍下C#的泛型,通过对比,比较学习Java泛型的目的和设计意图.C#泛型是C#语言2.0和通用语言运行时(CLR)同时支持的一个特性(这一点是导致C#泛型和Java泛型 ...
- java源码学习(五)LinkedList
LinkedList [TOC] 一.定义 public class LinkedList<E> extends AbstractSequentialList<E> imple ...
- java基础(7)集合与泛型
第一部分:Collection集合 1 collection集合概述 集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.Map. C ...
- 01 语言基础+高级:1-6 集合_day02【Collection、泛型】
day02[Collection.泛型] 主要内容 Collection集合 迭代器 增强for 泛型 教学目标 能够说出集合与数组的区别 说出Collection集合的常用功能 能够使用迭代器对集合 ...
- java语言进阶(二)_Collection_泛型
主要内容 Collection集合 迭代器 增强for 泛型 第一章 Collection集合 1.1 集合概述 在前面基础班我们已经学习过并使用过集合ArrayList ,那么集合到底是什么呢? 集 ...
- JDK1.8源码(六)——java.util.LinkedList 类
上一篇博客我们介绍了List集合的一种典型实现 ArrayList,我们知道 ArrayList 是由数组构成的,本篇博客我们介绍 List 集合的另一种典型实现 LinkedList,这是一个有链表 ...
- Java 泛型学习总结
前言 Java 5 添加了泛型,提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型. 泛型的本质是参数化类型,可以为以前处理通用对象的类和方法,指定具体的对象类型.听起来有点抽象, ...
- Java之Iterator接口(遍历单列集合的迭代器)
Iterator接口概述 在程序开发中,经常需要遍历集合中的所有元素.针对这种需求,JDK专门提供了一个接口java.util.Iterator . Iterator 接口也是Java集合中的一员,但 ...
随机推荐
- 关于type check的定义
Concept: Type Checking There is no static type checking in Scheme; type checking is done at run time ...
- C#验证码使用
1.C#创建验证码 1.1 创建获取验证码页面(ValidateCode.aspx) <html xmlns="http://www.w3.org/1999/xhtml"&g ...
- Beauty Contest(graham求凸包算法)
Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 25256 Accepted: 7756 Description Bess ...
- HDU 5478 Can you find it(数学问题)
题目大意: 给你 ak1⋅n+b1+ bk2⋅n−k2+1 = 0 (mod C)(n = 1, 2, 3, ...). 要求所有的n都满足上述的式子. 问这样的a,b 有多少对? 分析这个问题 ...
- Delphi NativeXml读取中文乱码问题解决
NativeXml默认的字符类型为Utf8String,有时在读取中文时还是会出现乱码问题,在329版本中提供一种类型转换函数sdUtf8ToWide(),我们可以这样sdUtf8ToWide(AXm ...
- Python根据上下限生成不重复随机数
Python 2.7.5 代码: # coding=gbk import random import sys min_num = input('输入下限:') max_num = input('输入上 ...
- HDOJ(HDU) 2123 An easy problem(简单题...)
Problem Description In this problem you need to make a multiply table of N * N ,just like the sample ...
- Python监控日志程序
一个简易的日志监控的脚本,功能如下:1.windows环境2.当匹配日志关键字时会发出声音,匹配的关键字不同,播放的声音不同3.能做到实时响应 注意:是在win环境下哦 直接上代码吧 1 2 3 4 ...
- Python Logging 模块研究
背景在一个新的项目里面加入了日志功能,想自己写一个,但是一个偶然的机会,通过google发现Python内建了一个非常强大的日志(log)模块:l... 背景 在一个新的项目里面加入了日志功能,想自己 ...
- 从Delphi 7升级到Delphi XE
Delphi 7和XE中间有好几个版本号,可都不太流行,一是由于Delphi有些边缘化,二是7在XP环境下是近乎完美的版本号.市场上关于delphi的书越来越少,提供从7升级到XE介绍的资料差点儿没用 ...