java笔记
- 格式:doc
- 大小:94.50 KB
- 文档页数:15
集合知识总结
ArrayList:
插入元素:在main函数中创建实例对象,然后通过“实例对象.add()进行元素添加;
删除元素:在main函数中创建实例对象,然后通过“实例对象.remove(元素位置或”元素”)进行元素移除;
修改元素:在main函数中创建实例对象,然后通过“实例对象.set(元素位置,”元素”)进行元素移除;
查询元素:在main函数中定义一个变量a,然后通过a=“实例对象.get(元素位置【从0开始】),如果所要获取的元素为字符串型,则需进行强转操作,如:String c = ( String )al.get( i );再通过System,out.println(a);打印出来;
元素遍历:定义一个变量len,然后通过len=“实例对象.size(此处不用填任何东西);获取集合的长度,最后通过for循环进行遍历。
判断元素存在与否:定义一个boolean类型的变量b,然后通过b=“实例对象.contain(要查看的元素);然后打印b,看结果是false还是true 。
Set的实现类:
HashSet类:
1、 元素添加与删除与ArrayList的相同;
2、 无修改方法,只能通过“先删除,再插入”的方法达到修改效果;
遍历:Iterator模式是用于遍历集合类的标准访问方法(遍历方法有多种,为何此模式会成为遍历集合类的标准访问方法??具体可查看JAVA Iterator 的用法)PPT中的遍历代码:
import java.util.HashSet;
import java.util.Iterator;
public class Person {
public static void main( String [] args ) {
HashSet s = new HashSet();
s.add( "Eric" );
s.add( "Janet" );
//int len = s.size();
Iterator itr = s.iterator();
while ( true ) {
boolean b = itr.hasNext();
if ( false == b ) {
break;
}
String str = ( String )itr.next();
System.out.println( str );
}
}
}
可做如下改进,代码更简洁:
import java.util.HashSet;
import java.util.Iterator;
public class Person {
public static void main( String [] args ) {
HashSet s = new HashSet();
s.add( "Eric" );
s.add( "Janet" );
for(Iterator it=s.iterator();it.hasNext();)
{
String a=(String)it.next();
System.out.println(a);
}
}
}
TreeSet类:
与HashSet类各方法的使用方式相比较,唯一的区别就是创建对象时的代码不同而已,只需将HashSet s = new HashSet();改为 TreeSet s = new TreeSet(); 即可。但是TreeSet相对于HashSet多了一个功能:自动将元素进行排序。
• 如何排序?
• 实现方式:
• 1、让实体类实现Comparable接口,并且实现这个接口中提供的compareTo排序方法
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class Person implements Comparable {
public int age;
public int compareTo(Object obj) {
Person p = ( Person )obj;
if ( this.age > p.age ) {
return 1;
} else if ( this.age < p.age ) { return -1;
} else {
return 0;
}
}
public static void main( String [] args ) {
Person p1 = new Person();
p1.age = 1;
Person p2 = new Person();
p2.age = 2;
Person p3 = new Person();
p3.age = 3;
Set s = new TreeSet();
s.add( p1 );
s.add( p2 );
s.add( p3 );
int len = s.size();
Iterator itr = s.iterator();
while ( true ) {
boolean b = itr.hasNext();
if ( false == b ) {
break;
}
Person p = ( Person )itr.next();
System.out.println( p.age );
}
}
}
代码改进:
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class Person implements Comparable {
public int age; public int compareTo(Object obj) {
Person p = ( Person )obj;
if ( this.age > p.age ) {
return 1;
} else if ( this.age < p.age ) {
return -1;
} else {
return 0;
}
}
public static void main( String [] args ) {
Person p1 = new Person();
p1.age = 1;
Person p2 = new Person();
p2.age = 2;
Person p3 = new Person();
p3.age = 3;
Set s = new TreeSet();
s.add( p1 );
s.add( p2 );
s.add( p3 );
int len = s.size();
for(Iterator it=s.iterator();it.hasNext();)
{
Person a=(Person)it.next();
System.out.println(a.age);
}
}
}
• 2、额外写一个排序类,该类实现Comparator接口,并且在compare中实现排序
import parator;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class Person implements Comparable {
public int age;
public int compareTo(Object obj) {
Person p = ( Person )obj;
if ( this.age > p.age ) {
return 1;
} else if ( this.age < p.age ) {
return -1;
} else {
return 0;
}
}
public class PersonComparator implements Comparator{
//比较方法
public int compare(Object o1, Object o2) {
Person p1 = ( Person )o1;
Person p2 = ( Person )o2;
return p1.age – p2.age;
}
}
public static void main( String [] args ) {
Person p1 = new Person();
p1.age = 1;
Person p2 = new Person();
p2.age = 2;
Person p3 = new Person();
p3.age = 3;
Set s = new TreeSet(new PersonComparator() );
s.add( p1 );
s.add( p2 );
s.add( p3 );
int len = s.size();
Iterator itr = s.iterator();
while ( true ) {
boolean b = itr.hasNext();
if ( false == b ) {
break;