存储数据.
数组: 长度不可变,顺序,数据类型相同。
length;
下标。
Collection: 集合根接口
可重复的,不可重复的,有序的,无序的。
公共方法;
add();添加元素
addAll();
contains():
isEmpty();
remove();
removeAll();
size(); 集的长度(元素个数)
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/**
* 集合根接口测试
*
* @author 凸
* @create 2019-03-06-17:01
*/
public class CollectionTest {
public static void main(String [] args) {
method1();
methodIterator();
}
public static void method1(){
Collection collection = new ArrayList();
//为什么要强转
((ArrayList) collection).add(123);
((ArrayList) collection).add("Hello");
((ArrayList) collection).add('a');
((ArrayList) collection).add(123.44f);
((ArrayList) collection).add(9561.2);
((ArrayList) collection).add(new Object());
System.out.println(collection);
//遍历
for(int i = 0;i<collection.size();i++){
System.out.println(((ArrayList)collection).get(i));
}
System.out.println(collection.contains('v'));
collection.remove(123.44F);
collection.remove("Hello");
System.out.println(collection);
System.out.println(collection.size());//4
Object [] obj = collection.toArray();
System.out.println(obj);
for (int i = 0 ; i < obj.length; i++){
System.out.println(obj[i]);
}
System.out.println("------------------");
}
public static void methodIterator() {
Collection collection = new ArrayList();
((ArrayList) collection).add(123);
((ArrayList) collection).add("Hello");
((ArrayList) collection).add('a');
((ArrayList) collection).add(123.44F);
((ArrayList) collection).add(345.66);
((ArrayList) collection).add(new Object());
//使用迭代器遍历集合
Iterator it = collection.iterator();
while (it.hasNext()) {
Object obj = it.next();
System.out.println(obj);
}
}
}
[123, Hello, a, 123.44, 9561.2, java.lang.Object@4554617c]
123
Hello
a
123.44
9561.2
java.lang.Object@4554617c
false
[123, a, 9561.2, java.lang.Object@4554617c]
4
[Ljava.lang.Object;@74a14482
123
a
9561.2
java.lang.Object@4554617c
------------------
123
Hello
a
123.44
345.66
java.lang.Object@1540e19d
Iterator iterator()
返回在此 collection 的元素上进行迭代的迭代器。
hasNext();
next();
remove();
List:
有序的。
允许元素重复。相等元素重复也可以。
允许null元素 ,多个null元素
get(int index);
listIterator()
indexOf();
lastIndexOf();
set(int index,Object element)
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
/**
* @author 凸
* @create 2019-03-06-16:44
*/
public class ListTest {
//public ListTest(){}
public static void main(String[] args){
List list = new ArrayList();
list.add("Hello");
list.add(123);
list.add('a');
System.out.println(list);
System.out.println(list.get(0));
System.out.println(list.indexOf("Hello"));
System.out.println(list.set(0,"World"));
System.out.println(list.subList(0,2));
ListIterator it = list.listIterator();
//相当于遍历
//hasnext是看是否有东西
//next是拿出来
while(it.hasNext()){
Object obj = it.next();
System.out.println(obj);
}
}
}
[Hello, 123, a]
Hello
0
Hello
[World, 123]
World123a
ArrayList
list集合的数组实现。
线程不安全(不是同步的)。
查询快,增删慢。
允许null元素
import java.util.ArrayList;
import java.util.Iterator;
/**
* 排序
* @author 凸
* @create 2019-03-06-11:04
*/
public class ArrayListTest {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add("Hello");
list.add(1234);
list.add(12.555);
list.add(new Object());
System.out.println(list);
System.out.println(list.get(2));
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
//增强for循环
/*for (Object o : list){
}*/
Iterator l = list.iterator();
while(l.hasNext()){
System.out.println(l.next());
}
}
}
[Hello, 1234, 12.555, java.lang.Object@4554617c]
12.555
Hello
1234
12.555
java.lang.Object@4554617c
Hello
1234
12.555
java.lang.Object@4554617c
import java.util.ArrayList;
import java.util.Iterator;
/**
* @author 凸
* @create 2019-03-06-11:30
*/
public class ArrayList2 {
public static void main(String[] args) {
method1();
method2();
method3();
}
public static void method1(){
ArrayList<String> list = new ArrayList();
list.add("Hello");
list.add("Hello");
list.add("Hell1");
list.add("Hello");
System.out.println(list);
Iterator var1 = list.iterator();
while(var1.hasNext()) {
String s = (String) var1.next();
System.out.println(s);
}
}
public static void method2(){
ArrayList<Person> list = new ArrayList();
list.add(new Person(23,"admin"));
list.add(new Person(26,"joke"));
list.add(new Person(23,"张三"));
System.out.println(list);
Iterator it = list.iterator();
}
public static void method3(){
ArrayList<String>list = new ArrayList();
list.add("Hello");
list.add("admin");
list.add("joke");
System.out.println(list);
Iterator it = list.iterator();
while(it.hasNext()){
String str = (String)it.next();
it.remove();//删除
System.out.println(str);
}
System.out.println(list);
}
}
[Hello, Hello, Hell1, Hello]
Hello
Hello
Hell1
Hello
[Person{age=23, name='admin'}, Person{age=26, name='joke'}, Person{age=23, name='张三'}]
[Hello, admin, joke]
Hello
admin
joke
[]
LinkedList
List 接口的链接列表实现
允许null元素
线程不安全( 不同步)
增删快,查询慢
import java.util.LinkedList;
/**
* @author 凸
* @create 2019-03-06-11:51
*/
public class LinkedListTest {
// public LinkedListTest(){}
public static void main(String[] args){
LinkedList<Object> list = new LinkedList();
list.add("Hello");
list.add("Hello");
list.add(123);
list.add(12.44D);
list.add('a');
System.out.println(list);//同下默认添加toString
System.out.println(list.toString());//同上
list.addFirst(new Object());//前面添加java.lang.Object@4554617c地址值
list.addLast(9999);//后面添加99999
System.out.println(list);
}
}
[Hello, Hello, 123, 12.44, a]
[Hello, Hello, 123, 12.44, a]
[java.lang.Object@4554617c, Hello, Hello, 123, 12.44, a, 9999]