复习java基础第四天(集合)

List 代表一个元素有序、且可重复的集合,集合中的每个元素都有其对应的顺序索引

List 允许使用重复元素,可以通过索引来访问指定位置的集合元素。

List 默认按元素的添加顺序设置元素的索引。

List 集合里添加了一些根据索引来操作集合元素的方法:

另外:

List 额外提供了一个 listIterator()
方法,该方法返回一个 ListIterator 对象,

ListIterator 接口继承了 Iterator 接口,提供了专门操作
List 的方法:

boolean hasPrevious()
Object previous()
void add()

ArrayList 和 Vector 是 List 接口的两个典型实现 区别:

1、Vector 是一个古老的集合,通常建议使用 ArrayList。

2、ArrayList 是线程不安全的,而 Vector
是线程安全的。

3、即使为保证 List 集合线程安全,也不推荐使用
Vector。

 1 public class Person {
2
3 private String name;
4 private int age;
5
6 public String getName() {
7 return name;
8 }
9 public void setName(String name) {
10 this.name = name;
11 }
12 public int getAge() {
13 return age;
14 }
15 public void setAge(int age) {
16 this.age = age;
17 }
18 public Person(String name, int age) {
19 super();
20 this.name = name;
21 this.age = age;
22 }
23 public Person(){}
24 @Override
25 public String toString() {
26 return "Person [name=" + name + ", age=" + age + "]";
27 }
28 }

练习代码1:Person类

 1 import java.util.ArrayList;
2 import java.util.Comparator;
3 import java.util.List;
4
5 public class TestArrayList {
6 public static void main(String []args){
7
8 List list = new ArrayList();
9 List list2 = new ArrayList();
10 Person p1 = new Person("lisi007",15);
11 list.add(new Person("lisi003",12));
12 list.add(new Person("lisi003",12));
13 list.add(p1);
14 list.add(new Person("lisi005",10));
15 list.add(new Person("lisi006",20));
16
17 for(Object obj:list){
18 System.out.println(obj);
19 }
20
21 System.out.println();
22 list2.add(new Person("zhangsan",22));
23 list2.add(new Person("zhangsan",23));
24 list.addAll(2, list2);
25 list.add(3, p1);
26 // list.remove(1);
27
28 System.out.println(list.indexOf(p1));
29 System.out.println(list.lastIndexOf(p1));
30
31 for(Object obj:list){
32 System.out.println(obj);
33 }
34
35 /* //遍历List方法1:调用iterator()方法
36 Iterator iterator = list.iterator();
37 while(iterator.hasNext()){
38 System.out.println(iterator.next());
39 }
40
41 //遍历List方法2:增强for循环
42 for(Object obj:list){
43 System.out.println(obj);
44 }
45
46 //遍历List方法3:for循环,利用get(int index)
47 for(int i=0;i<list.size();i++){
48 System.out.println(list.get(i));
49 }
50 //遍历List方法4:
51 ListIterator li = list.listIterator();
52 while(li.hasNext()){
53 System.out.println(li.next());
54 }
55 */
56 }
57 }

练习代码2:TestArrayList类(主程序)

复习java基础第四天(集合)

时间: 2024-08-09 02:07:48

复习java基础第四天(集合)的相关文章

复习java基础第三天(集合)

一.Collection常用的方法: Java 集合可分为 Set.List 和 Map 三种体系: Set:无序.不可重复的集合. List:有序,可重复的集合. Map:具有映射关系的集合. Collection 接口是 List.Set 和 Queue 接口的父接口, 该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合: import java.util.ArrayList; import java.util.Collection; import j

深入Java基础(四)--哈希表(1)HashMap应用及源码详解

继续深入Java基础系列.今天是研究下哈希表,毕竟我们很多应用层的查找存储框架都是哈希作为它的根数据结构进行封装的嘛. 本系列: (1)深入Java基础(一)--基本数据类型及其包装类 (2)深入Java基础(二)--字符串家族 (3)深入Java基础(三)–集合(1)集合父类以及父接口源码及理解 (4)深入Java基础(三)–集合(2)ArrayList和其继承树源码解析以及其注意事项 文章结构:(1)哈希概述及HashMap应用:(2)HashMap源码分析:(3)再次总结关键点 一.哈希概

复习java基础第二天(异常处理)

一.常见的异常类型: public class TestException { public static void main(String[] args) { int i = 10; //数学异常: java.lang.ArithmeticException int j = i / 0; System.out.println(j); int [] scores = new int[]{1, 2, 4, 5}; //数组下标越界异常: java.lang.ArrayIndexOutOfBound

复习java基础第一天

一:static static: 静态的.   1. 若需要一个类的多个对象共享一个变量,则该变量需要使用 static 修饰.   2. 因为 static 修饰的变量为类的所有的实例所共享,所以 static 成员不属于某个类的实例, 而属于整个类.     所以在访问权限允许的情况下,可以使用 "类名." 直接访问静态成员(成员包括属性和方法).  3. 注意: 在静态方法里只能直接调用同类中其它的静态成员(包括变量和方法),而不能直接访问类中的非静态成员.     这是因为,对

复习java基础第七天(反射)

一:目标 Ø理解 Class 类 Ø理解 Java 的类加载机制 Ø学会使用 ClassLoader 进行类加载 Ø理解反射的机制 Ø掌握 Constructor.Method.Field 类的用法 Ø理解并掌握动态代理 1.Class类 –对象照镜子后可以得到的信息:某个类的数据成员名.方法和构造器.某个类到底实现了哪些接口. 对于每个类而言,JRE 都为其保留一个不变的 Class 类型的对象. 一个 Class 对象包含了特定某个类的有关信息. –  Class 对象只能由系统建立对象.

复习java基础第六天(IO)

一:File 类 • 输入:读取外部数据(磁盘.光盘等存储设备的数据)到程序(内存)中. • 输出:将程序(内存)数据输出到磁盘.光盘等存储设备中 • Java 的 IO 流主要包括输入.输出两种 IO 流,每种输入.输出流有可分为字节流和字符流两大类: – 字节流以字节为单位来处理输入.输出操作 – 字符流以字符为单位来处理输入.输出操作 注意:输入.输出是以程序为参照. • File 类代表与平台无关的文件和目录. • File  能新建.删除.重命名文件和目录,但 File 不能访问文件内

java基础(四章)

java基础(四章) 一.             switch结构(开关语句)的语法 switch(表达式 ){ ------- [dream1]类型为int.char case  常量1 :    ---------[dream2]case 结构可以有多个 //语句块1 break;---------[dream3]程序跳出switch结构 case  常量n:---------[dream4]常量的值不能相同 //语句块n break; default :---------- [dream

Java 基础(四)| IO 流之使用文件流的正确姿势

为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 IO 流? 想象一个场景:我们在电脑上编辑文件,可以保存到硬盘上,也可以拷贝到 U 盘中.那这个看似简单的过程,背后其实是数据的传输. 数据的传输,也就是数据的流动.既然是流动也就会有方向,有入方向和出方向.举个上传文件的栗子,现在有三个对象,文件.应用程序.上传的目标地址(服务器).简化的上传文件有两步: 应用程序读文件

Java基础知识强化之集合框架笔记07:Collection集合的遍历之迭代器遍历

1. Collection的迭代器: 1 Iterator iterator():迭代器,集合的专用遍历方式 2. 代码示例: package cn.itcast_03; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; /* * Iterator iterator():迭代器,集合的专用遍历方式 * Iterator(迭代器): * Object next():获取元素,并移动