package com.Test.Demo.JiHeTest;
import com.sun.org.apache.xalan.internal.xsltc.cmdline.Compile;
import com.sun.org.apache.xpath.internal.objects.XObject;
import java.util.*;
public class JiHeTest01 {
public static void main(String[] args) {
System.out.println("============ Collection中元素均可以迭代============");
List<Integer> l1 = new ArrayList<>();
l1.add(996);
l1.add(123);
l1.add(123);
l1.add(12345);
System.out.println("============List集合方法测试============");
System.out.println("============List集合中元素可重复 有序============");
for (Integer i : l1) {
System.out.println(i);
}
System.out.println("List 集合元素数量为:" + l1.size());
l1.remove(new Integer(123));
System.out.println("List 集合元素数量为:" + l1.size());
for (int i = 0; i < l1.size(); i++) {
System.out.println(l1.get(i));
}
Iterator<Integer> inte = l1.iterator();
while (inte.hasNext()) {
Integer t = inte.next();
System.out.println(t);
}
System.out.println(l1.contains(123));
System.out.println(l1.isEmpty());
Object[] l1Array = l1.toArray();
for (Object t : l1Array) {
int t1 = (int) t;
System.out.println(t1);
}
System.out.println();
System.out.println("============Set集合方法测试============");
System.out.println("============Set集合元素不可重复 无序============");
System.out.println("============HasgSet集合测试============");
Set<Dog> set1 = new HashSet<>();
Dog dog1 = new Dog(5, "www");
Dog dog2 = new Dog(6, "lll");
Dog dog3 = new Dog(9, "qqq");
Dog dog4 = new Dog(5, "www");
set1.add(dog1);
set1.add(dog2);
set1.add(dog3);
set1.add(dog4);
Iterator<Dog> inteSet = set1.iterator();
while (inteSet.hasNext()) {
System.out.println(inteSet.next());
}
System.out.println("============TreeSet集合方法测试============");
System.out.println("============TreeSet可以对Set 集合进行排序,默认自然排序(即升序),但也可以做客户化的排序============");
Set<Integer> te1=new TreeSet<>();
te1.add(1);
te1.add(0);
te1.add(-1);
te1.add(0);
for(Iterator<Integer> treeIter =te1.iterator();treeIter.hasNext();){
System.out.println(treeIter.next());
}
Set<Dog> set2=new TreeSet<>();
Dog dog11 = new Dog(5, "www");
Dog dog22 = new Dog(6, "lll");
Dog dog33 = new Dog(9, "qqq");
Dog dog44 = new Dog(5, "www");
set2.add(dog11);
set2.add(dog22);
set2.add(dog33);
set2.add(dog44);
Iterator tree1=set2.iterator();
while(tree1.hasNext()){
System.out.println(tree1.next());
}
System.out.println();
Cat cat1=new Cat(2,"mmm");
Cat cat2=new Cat(3,"kkk");
Cat cat3=new Cat(2,"iii");
Cat cat4=new Cat(5,"mmm");
Comparator catComparator=new CatComparator();
Set<Cat> catSet=new TreeSet<>(catComparator);
catSet.add(cat1);
catSet.add(cat2);
catSet.add(cat3);
catSet.add(cat4);
Iterator<Cat> catIterator=catSet.iterator();
while(catIterator.hasNext()){
System.out.println(catIterator.next());
}
System.out.println();
System.out.println("================Map集合测试==============");
System.out.println("==============HashMap集合测试============");
Map<Integer,String > map=new HashMap<>();
map.put(111,"老王");
map.put(122,"老刘");
map.put(133,"老杜");
map.put(111,"老付");
Set<Map.Entry<Integer,String>> six=map.entrySet();
Iterator<Map.Entry<Integer,String >> entryIterator=six.iterator();
while(entryIterator.hasNext()){
Map.Entry<Integer,String> t=entryIterator.next();
System.out.println("编号:"+t.getKey()+" 姓名:"+t.getValue());
}
Dog dog111 = new Dog(8, "lll");
Dog dog222 = new Dog(6, "www");
Dog dog333 = new Dog(9, "qqq");
Dog dog444 = new Dog(6, "www");
Map<Dog,String> map1=new HashMap<>();
map1.put(dog111,"dasdasdad");
map1.put(dog222,"adasdasdad");
map1.put(dog333,"daasddasdad");
map1.put(dog444,"dasdasdad");
for(Iterator<Map.Entry<Dog,String >> tt=map1.entrySet().iterator();tt.hasNext();){
Dog t=tt.next().getKey();
System.out.println(t+" "+map1.get(t));
}
System.out.println("==============TreeMap集合测试============");
System.out.println();
System.out.println("================Collections 工具类常用方法=============");
List<Integer> list1=new ArrayList<>();
list1.add(1);
list1.add(99);
list1.add(-1);
list1.add(0);
list1.add(-1);
Collections.sort(list1);
for(Iterator t=list1.iterator();t.hasNext();){
System.out.println(t.next());
}
System.out.println();
Collections.reverse(list1);
for(Iterator t=list1.iterator();t.hasNext();){
System.out.println(t.next());
}
System.out.println();
Set set = new HashSet();
set.add(10);
set.add(1);
set.add(4);
set.add(9);
List list2=new ArrayList(set);
Collections.sort(list2);
for(Iterator t=list2.iterator();t.hasNext();){
System.out.println(t.next());
}
System.out.println();
System.out.println(Collections.binarySearch(list2,9));
}
}
class Cat{
private int age;
private String name;
public Cat(int age,String name){
this.age=age;
this.name=name;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
@Override
public String toString() {
return "Cat{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
}
class CatComparator implements Comparator{
public int compare(Object a,Object b){
if((a instanceof Cat)&&(b instanceof Cat)){
Cat a1=(Cat) a;
Cat b1=(Cat) b;
return b1.getAge()-a1.getAge();
}
else{
throw new IllegalArgumentException("非法参数,o=" );
}
}
}
class Dog implements Comparable {
private int age;
private String name;
public Dog(int age,String name){
this.age=age;
this.name=name;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Dog dog = (Dog) o;
return age == dog.age &&
Objects.equals(name, dog.name);
}
@Override
public int hashCode() {
return Objects.hash(age, name);
}
@Override
public String toString() {
return "Dog{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
@Override
public int compareTo(Object o) {
if(o instanceof Dog)
{
Dog t=(Dog )o;
return (t.age-this.age);
}
else{
throw new IllegalArgumentException("非法参数,o=" + o);
}
}
}
运行结果:
============ Collection中元素均可以迭代============
============List集合方法测试============
============List集合中元素可重复 有序============
996
123
123
12345
List 集合元素数量为:4
List 集合元素数量为:3
996
123
12345
996
123
12345
true
false
996
123
12345
============Set集合方法测试============
============Set集合元素不可重复 无序============
============HasgSet集合测试============
Dog{age=5, name='www'}
Dog{age=6, name='lll'}
Dog{age=9, name='qqq'}
============TreeSet集合方法测试============
============TreeSet可以对Set 集合进行排序,默认自然排序(即升序),但也可以做客户化的排序============
-1
0
1
Dog{age=9, name='qqq'}
Dog{age=6, name='lll'}
Dog{age=5, name='www'}
Cat{age=5, name='mmm'}
Cat{age=3, name='kkk'}
Cat{age=2, name='mmm'}
================Map集合测试==============
==============HashMap集合测试============
编号:133 姓名:老杜
编号:122 姓名:老刘
编号:111 姓名:老付
Dog{age=6, name='www'} dasdasdad
Dog{age=8, name='lll'} dasdasdad
Dog{age=9, name='qqq'} daasddasdad
==============TreeMap集合测试============
================Collections 工具类常用方法=============
-1
-1
0
1
99
99
1
0
-1
-1
1
4
9
10
2
Process finished with exit code 0