什么是集合??
- 集合就是一个容器 专门来存储其他的数据类型
- 集合不能直接存储基本数据类型,另外集合也不能直接存储java 对象,集合当中存储的都是java对象的内存地址(或者说是集合中存储的是引用)
- 注意:集合在java中本身就是一个对象,只能存储引用数据类型,存储的对象的内存地址,然后去指向相应的对象
collection方法讲解
package com.bjpowernode.javase.collection;
import java.util.ArrayList;
import java.util.Collection;
public class CollectionTest01 {
public static void main(String[] args) {
Collection c=new ArrayList();
c.add(1200);
c.add(3.14);
c.add( new Object());
c.add(new Student());
c.add(true);
System.out.println("集合中的个数是:"+c.size());
c.clear();
System.out.println("集合中的个数是:" +c.size());
c.add("hello");
c.add("world");
c.add("浩克");
c.add("绿巨人");
boolean flag=c.contains("绿巨人");
System.out.println(flag);
boolean flag2=c.contains("绿巨人2");
System.out.println(flag2);
c.remove(1);
System.out.println(c.size());
System.out.println(c.isEmpty());
c.clear();
System.out.println(c.isEmpty());
c.add("aaa");
c.add("nihao");
c.add("zhangsan");
c.add(new Student());
Object[] obj=c.toArray();
for(int i=0;i< obj.length;i++)
{
System.out.println(obj[i]);
}
}
}
class Student{
}
迭代专题(*****)
package com.bjpowernode.javase.collection;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class CollectionTest02 {
public static void main(String[] args) {
Collection c=new HashSet();
c.add("abc");
c.add("def");
c.add(120);
c.add(new Object());
Iterator it=c.iterator();
while(it.hasNext())
{
Object objs=it.next();
System.out.println(objs);
}
}
}
package com.bjpowernode.javase.collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class CollectionTest03 {
public static void main(String[] args) {
Collection c=new ArrayList();
c.add(1);
c.add(2);
c.add(3);
c.add(4);
c.add(5);
Iterator it=c.iterator();
while (it.hasNext()){
Object objs=it.next();
System.out.println(objs);
}
Collection cc=new HashSet();
cc.add(111);
cc.add(222);
cc.add(222);
cc.add(333);
cc.add(444);
Iterator ite=cc.iterator();
while (ite.hasNext()){
Object objs2=ite.next();
System.out.println(objs2);
}
}
}
contain详解
package com.bjpowernode.javase.collection;
import java.util.ArrayList;
import java.util.Collection;
public class CollectionTest04 {
public static void main(String[] args) {
Collection c=new ArrayList();
String s1=new String("abc");
c.add(s1);
String s2=new String("def");
c.add(s2);
System.out.println(c.size());
String x=new String("abc");
System.out.println(c.contains(x));
}
}
remove
package com.bjpowernode.javase.remove;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class RemoveTest01 {
public static void main(String[] args) {
Collection collection=new ArrayList();
collection.add(1);
collection.add(2);
collection.add(3);
Iterator it=collection.iterator();
while(it.hasNext())
{
Object obj=it.next();
it.remove();
System.out.println(obj);
}
System.out.println(collection.size());
}
}
list
package com.bjpowernode.javase.list;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ListTest01 {
public static void main(String[] args) {
List list=new ArrayList();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add(1,"HJK");
Iterator it=list.iterator();
while (it.hasNext())
{
Object obj=it.next();
System.out.println(obj);
}
Object fristobj=list.get(3);
System.out.println(fristobj);
for(int i=0;i<list.size();i++)
{
Object obj=list.get(i);
System.out.println(obj);
}
int ii=list.indexOf("C");
System.out.println(ii);
System.out.println(list.lastIndexOf("B"));
list.remove(1);
System.out.println(list.size());
list.set(2,"AGUI");
System.out.println(list.get(2));
}
}
ArrayList
package com.bjpowernode.javase.collection;
import java.util.ArrayList;
import java.util.List;
public class ArrayListTest01 {
public static void main(String[] args) {
List list1=new ArrayList();
List list2=new ArrayList(20);
System.out.println(list2.size());
}
}
LinkedList
package com.bjpowernode.javase.collection;
import java.util.LinkedList;
import java.util.List;
public class LinkedListTest01 {
public static void main(String[] args) {
List list=new LinkedList();
list.add("abc");
list.add("bcd");
list.add("def");
for(int i=0;i<list.size();i++)
{
Object obj=list.get(i);
System.out.println(obj);
}
}
}
Vector
package com.bjpowernode.javase.collection;
import java.util.*;
public class VectorTest01 {
public static void main(String[] args) {
List list=new Vector();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
Iterator it=list.iterator();
while(it.hasNext())
{
Object obj=it.next();
System.out.println(obj);
}
List mylist=new ArrayList();
Collections.synchronizedList(mylist);
mylist.add("111");
mylist.add("222");
mylist.add("333");
}
}
泛型
package com.bjpowernode.javase.collection;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class GenericTest01 {
public static void main(String[] args) {
List list=new ArrayList();
Cat c=new Cat();
Bird b=new Bird();
list.add(c);
list.add(b);
Iterator it=list.iterator();
while(it.hasNext()){
Object obj=it.next();
if (obj instanceof Animal){
Animal a=(Animal) obj;
System.out.println(a);
}
}
}
}
class Animal {
public void move(){
System.out.println("动物在移动");
}
}
class Cat extends Animal {
public void catchMouse(){
System.out.println("猫在抓老鼠");
}
}
class Bird extends Animal {
public void fly(){
System.out.println("鸟儿在飞翔");
}
}
package com.bjpowernode.javase.collection;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class GenericTest01 {
public static void main(String[] args) {
List<Animal> list=new ArrayList<Animal>();
Cat c=new Cat();
Bird b=new Bird();
list.add(c);
list.add(b);
Iterator<Animal> it=list.iterator();
while(it.hasNext()){
Animal a=it.next();
if(a instanceof Cat){
Cat cc=(Cat)a;
cc.catchMouse();
}
if (b instanceof Bird){
Bird bb=(Bird) b;
bb.fly();
}
}
}
}
class Animal {
public void move(){
System.out.println("动物在移动");
}
}
class Cat extends Animal {
public void catchMouse(){
System.out.println("猫在抓老鼠");
}
}
class Bird extends Animal {
public void fly(){
System.out.println("鸟儿在飞翔");
}
}
package com.bjpowernode.javase.collection;
public class GenericTest03 {
public static void main(String[] args) {
MyIterator<String> mi=new MyIterator<>();
String s1=mi.get();
MyIterator<Animal> aa=new MyIterator<>();
Animal s2=aa.get();
MyIterator mm=new MyIterator();
Object obj=mm.get();
}
}
class MyIterator<T> {
public T get(){
return null;
}
}
增强for循环
package com.bjpowernode.javase.collection;
public class ForEachTest01 {
public static void main(String[] args) {
int[] arr={1,2,3,4,5,6};
for(int i=0;i<arr.length;i++)
{
System.out.println(arr[i]);
}
System.out.println("====================");
for(int data:arr){
System.out.println(data);
}
}
}
HashSet集合
package com.bjpowernode.javase.collection;
import java.util.HashSet;
import java.util.Set;
public class HashSetTest01 {
public static void main(String[] args) {
Set<String> strs=new HashSet<>();
strs.add("123");
strs.add("123");
strs.add("nihao");
strs.add("234");
strs.add("3333");
for (String ss:strs){
System.out.println(ss);
}
}
}
TreeSet
package com.bjpowernode.javase.collection;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
public class TreeSetTest01 {
public static void main(String[] args) {
Set<String> set=new TreeSet<>();
set.add("123");
set.add("234");
set.add("345");
for (String ss:set){
System.out.println(ss);
}
}
}
Map的方法
package com.bjpowernode.javase.collection;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
public class MapTest01 {
public static void main(String[] args) {
Map<Integer,String> map=new HashMap<>();
map.put(1,"zhangsan");
map.put(2,"lisi");
map.put(3,"wangwu");
map.put(4,"zhaoliu");
String value=map.get(2);
System.out.println(value);
String value2=map.get(1);
System.out.println(value2);
System.out.println("键值对的数量:"+map.size());
map.remove(1);
System.out.println(map.size());
System.out.println(map.containsKey(new Integer(1)));
System.out.println(map.containsValue(new String("wangwu")));
System.out.println("=================");
Collection<String> values=map.values();
for (String s:values){
System.out.println(s);
}
map.clear();
System.out.println(map.size());
System.out.println(map.isEmpty());
}
}
对Map集合的遍历
package com.bjpowernode.javase.collection;
import com.sun.security.jgss.GSSUtil;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapTest02 {
public static void main(String[] args) {
Map<Integer,String> map=new HashMap<>();
map.put(1,"zhangsan");
map.put(2,"lisi");
map.put(3,"wangwu");
Set<Integer> keys=map.keySet();
Iterator<Integer> it=keys.iterator();
while (it.hasNext()){
Integer integer=it.next();
String value=map.get(integer);
System.out.println(value);
}
for (Integer key:keys){
System.out.println(key+"="+map.get(key));
}
Set<Map.Entry<Integer,String>> set=map.entrySet();
Iterator<Map.Entry<Integer,String>> it2=set.iterator();
while(it2.hasNext()){
Map.Entry<Integer,String> entry=it2.next();
Integer key=entry.getKey();
String value=entry.getValue();
System.out.println(key+"="+value);
}
for (Map.Entry<Integer,String> node:set){
System.out.println(node.getKey()+"="+node.getValue());
}
}
}
为什么哈希表的随机增删以及查询效率都高???
- 增删是在链表上,查询也不要全部查询,查询一部分就可以了
- 重点:通过讲解可以得出HashMap集合的key,会先调用两个方法,
- 一个是HashCode方法,一个是equals方法,那么这两个方法都需要重写
package com.bjpowernode.javase.collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class HashMapTest01 {
public static void main(String[] args) {
Map<Integer,String> map=new HashMap<>();
map.put(111,"zhangsan");
map.put(222,"lisi");
map.put(333,"wangwu");
map.put(777,"zhaoliu");
map.put(777,"king");
System.out.println(map.size());
Set<Map.Entry<Integer,String>> entrySet=map.entrySet();
for (Map.Entry<Integer,String> entry:entrySet){
System.out.println(entry.getKey()+"="+entry.getValue());
}
}
}
package com.bjpowernode.javase.collection.bean;
import java.util.HashMap;
import java.util.Map;
public class HashMapTest03 {
public static void main(String[] args) {
Map map=new HashMap();
map.put(null,null);
System.out.println(map.size());
map.put(null,100);
System.out.println(map.size());
Object obj=map.get(null);
System.out.println(obj);
}
}
Properties集合
package com.bjpowernode.javase.collection;
import java.util.Properties;
public class PropertiesTest01 {
public static void main(String[] args) {
Properties pro=new Properties();
pro.setProperty("123","nofjfv");
pro.setProperty("1333","noav");
Object obj=pro.getProperty("123");
System.out.println(obj);
}
}
TreeSet集合
package com.bjpowernode.javase.collection;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class TreeTest02 {
public static void main(String[] args) {
Set<String> set=new TreeSet<>();
set.add("zhangsan");
set.add("wangwu");
set.add("lisi");
for (String str:set){
System.out.println(str);
}
Set<Integer> ts1=new TreeSet<>();
ts1.add(100);
ts1.add(120);
ts1.add(133);
Iterator<Integer> iterator=ts1.iterator();
while (iterator.hasNext()){
Integer integer=iterator.next();
System.out.println(integer);
}
}
}
比较器比较的第一种方法(Comparable)
package com.bjpowernode.javase.collection;
import java.util.Set;
import java.util.TreeSet;
public class TreeSetTest03 {
public static void main(String[] args) {
Person p1=new Person(12);
Person p2=new Person(13);
Person p3=new Person(45);
Person p4=new Person(11);
Set<Person> set=new TreeSet<>();
set.add(p1);
set.add(p2);
set.add(p3);
set.add(p4);
for (Person pp:set){
System.out.println(pp);
}
}
}
class Person implements Comparable<Person>{
int age;
public Person(int age) {
this.age = age;
}
@Override
public int compareTo(Person o) {
return this.age-o.age;
}
public String toString(){
return "age="+age+"";
}
}
实现比较器的接口第二种方法(Comparator接口)
package com.bjpowernode.javase.collection;
import java.util.Comparator;
import java.util.TreeSet;
public class TreeSetTest06 {
public static void main(String[] args) {
TreeSet<WuGui> wuGuis=new TreeSet<>(new WuGuiComparator());
wuGuis.add(new WuGui(1000));
wuGuis.add(new WuGui(1200));
wuGuis.add(new WuGui(1300));
wuGuis.add(new WuGui(111));
for (WuGui ww:wuGuis){
System.out.println(ww);
}
}
}
class WuGui {
int age;
public WuGui(int age) {
this.age = age;
}
@Override
public String toString() {
return "WuGui{" +
"age=" + age +
'}';
}
}
class WuGuiComparator implements Comparator<WuGui> {
@Override
public int compare(WuGui o1, WuGui o2) {
return o1.age- o2.age;
}
}
Collection与Collections的区别
package com.bjpowernode.javase.collection;
import java.util.*;
public class CollectionsTest01 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
Collections.synchronizedList(list);
list.add("abc");
list.add("abe");
list.add("abf");
list.add("abx");
Collections.sort(list);
for (String str : list) {
System.out.println(str);
}
List<XiaoWu> wus=new ArrayList<>();
wus.add(new XiaoWu(1000));
wus.add(new XiaoWu(1200));
wus.add(new XiaoWu(1111));
Collections.sort(wus);
for (XiaoWu xiaoWu:wus){
System.out.println(xiaoWu);
}
Set<String> set=new TreeSet<>();
set.add("abc");
set.add("abe");
set.add("abs");
List<String> list1=new ArrayList<>(set);
Collections.sort(list1);
for (String ss:list1){
System.out.println(ss);
}
}
}
class XiaoWu implements Comparable<XiaoWu> {
int age;
public XiaoWu(int age) {
this.age = age;
}
@Override
public int compareTo(XiaoWu o) {
return this.age-o.age;
}
@Override
public String toString() {
return "XiaoWu{" +
"age=" + age +
'}';
}
}