java中set類測試總結
阿新 • • 發佈:2019-01-01
public class SetStu {
/*Set:所有set容器的父介面
*set的特點:元素不能重複(equals和hashCode一起判斷)
*HashSet:是依據HashMap來實現的
*1.元素是無序的(元素排放的順序和我們新增元素的先後順序無關)
*2.不能儲存重複元素,當新增重複元素的時候,保留之前的元素
*3.元素判斷是否重複,是通過equals和hashcode同時判斷,所以必須以相同標準同時重寫
*hashset遍歷的方式:
*1.由於沒有索引,不能通過索引遍歷
*2.增強for迴圈可以
*3.迭代器:(增強for迴圈是基於迭代器設計的)
*TreeSet:
*1.元素是必須排序的;
*2.也不能儲存重複的元素,是根據排序的規則來進行去重的
*HashSet和TreeSet效率:HashSet效率高
*
*/
public static void main(String[] args)
{
demo3();
}
//HashSet
public static void demo1(){
Set<Person> set = new HashSet<Person>();
intoPerson(set);
Person per = new Person("老虎",21);
Person per1 = new Person("老虎",21);
set.add(per);
set.add(per1);
for (Person person : set)
{
if(per==person){
System.out.println("找到了,第一隻老虎");
}
}
System.out.println(set);
}
//給容器儲存5個隨機的Person
public static void intoPerson(Collection<Person> coll){
String[] name = {"小花","小王","小明","小強","小麗"};
for (int i = 0; i < 5; i++)
{
int age = (int)(Math.random()*(20-10+1))+10;
coll.add(new Person(name[i],age));
}
}
//hashSet的遍歷
public static void demo2(){
Set<Person> set = new HashSet<Person>();
intoPerson(set);
//獲取迭代器
Iterator<Person> ite = set.iterator();
while(ite.hasNext()){
System.out.println(ite.next());
}
}
//TreeSet
public static void demo3(){
Set<Person> set = new TreeSet<Person>(new Comparator<Person>()
{
/*Set:所有set容器的父介面
*set的特點:元素不能重複(equals和hashCode一起判斷)
*HashSet:是依據HashMap來實現的
*1.元素是無序的(元素排放的順序和我們新增元素的先後順序無關)
*2.不能儲存重複元素,當新增重複元素的時候,保留之前的元素
*3.元素判斷是否重複,是通過equals和hashcode同時判斷,所以必須以相同標準同時重寫
*hashset遍歷的方式:
*1.由於沒有索引,不能通過索引遍歷
*2.增強for迴圈可以
*3.迭代器:(增強for迴圈是基於迭代器設計的)
*TreeSet:
*1.元素是必須排序的;
*2.也不能儲存重複的元素,是根據排序的規則來進行去重的
*HashSet和TreeSet效率:HashSet效率高
*
*/
public static void main(String[] args)
{
demo3();
}
//HashSet
public static void demo1(){
Set<Person> set = new HashSet<Person>();
intoPerson(set);
Person per = new Person("老虎",21);
Person per1 = new Person("老虎",21);
set.add(per);
set.add(per1);
for (Person person : set)
{
if(per==person){
System.out.println("找到了,第一隻老虎");
}
}
System.out.println(set);
}
//給容器儲存5個隨機的Person
public static void intoPerson(Collection<Person> coll){
String[] name = {"小花","小王","小明","小強","小麗"};
for (int i = 0; i < 5; i++)
{
int age = (int)(Math.random()*(20-10+1))+10;
coll.add(new Person(name[i],age));
}
}
//hashSet的遍歷
public static void demo2(){
Set<Person> set = new HashSet<Person>();
intoPerson(set);
//獲取迭代器
Iterator<Person> ite = set.iterator();
while(ite.hasNext()){
System.out.println(ite.next());
}
}
//TreeSet
public static void demo3(){
Set<Person> set = new TreeSet<Person>(new Comparator<Person>()
{