public static void main(String[] args) {
//将整数类型转换为字符串类型。
int a = Integer.parseInt("123");
sop("a="+a);
sop("a="+(a+4));//结果为127
}
public static void sop(String str) {
System.out.println(str);
}
}
集合框架(类):
public static void main(String[] args) {
//创建一个集合容器,使用collection接口的子类,ArrayList
ArrayList al = new ArrayList();
//01添加元素
al.add("java01");
al.add("java02");
al.add("java03");
sop(al);//02打印元素
//03获取合数,集合长度。
sop(al.size());
sop(al.remove("java01"));//04删除一个。claer全部删除
//05判断元素
sop("java02是否存在:"+al.contains("java02"));
sop(al.isEmpty());//判断集合是否为空
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
List集合共性方法:
public static void main(String[] args) {
ArrayList al = new ArrayList();
al.add("java01");
al.add("java02");
al.add("java03");
al.add(1,"java04");//指定位置添加元素。
sop(al);
//al.remove(2);//指定位置删除元素
al.set(0, "java001");//修改指定位置的元素
sop(al.get(1));//获取指定位置的元素
sop(al);
//获取所有元素
for(int x = 0;x < al.size();x++) {
System.out.println("al["+x+"]="+al.get(x));
}
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
public static void main(String[] args) {
ArrayList al = new ArrayList();
al.add("java01");
al.add("java02");
al.add("java03");
sop(al);
ListIterator li = al.listIterator();
while(li.hasNext()) {
Object obj = li.next();
if(obj.equals("java02")) {
li.set("java006");
}
}
while(li.hasPrevious()) {//hasNext正向取
sop("pre::"+li.previous());
}
sop(al);
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
vector中的枚举:
public class VectorDemo {
/*枚举就是Vector特有的取出方式,发现枚举和迭代很像。其实一样。
*
* */
public static void main(String[] args) {
Vector v = new Vector();
v.add("java01");
v.add("java02");
v.add("java03");
v.add("java04");
Enumeration en = v.elements();
while(en.hasMoreElements()) {
System.out.println(en.nextElement());
}
}
}
LinkedList:
public static void main(String[] args) {
LinkedList link = new LinkedList();
link.add("java01");
link.add("java02");
link.add("java03");
link.add("java04");
//sop(link.getFirst());
//sop(link.removeFirst());
while(!link.isEmpty()) {//移动第一个遍历字符串
sop(link.removeFirst());
}
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
练习:
public static void main(String[] args) {
DuiLie dl = new DuiLie();
dl.MyAdd("java01");
dl.MyAdd("java02");
dl.MyAdd("java03");
dl.MyAdd("java04");
while(!dl.isNull()) {
System.out.println(dl.myGet());
}
}
}
class DuiLie{
private LinkedList link;
DuiLie(){
link = new LinkedList();
}
public void MyAdd(Object obj) {
link.addFirst(obj);
}
public Object myGet() {
return link.removeFirst();
}
public boolean isNull() {
return link.isEmpty();
}
}
去除ArrayList中重复的元素:
-
public static void main(String[] args) { ArrayList al = new ArrayList(); al.add("java01"); al.add("java02"); al.add("java01"); al.add("java02"); al.add("java01"); al.add("java03"); sop(al); Iterator it = al.iterator();//在迭代时循环中Next只能调用一次,就要hasNext判断一次。会出现找不到元素异常。 al = singleElement(al); while(it.hasNext()){ sop(it.next()+" ..."+it.next()); } sop(al); } public static void sop(Object obj) { System.out.println(obj); } public static ArrayList singleElement(ArrayList al) { ArrayList newAl = new ArrayList();//新建一个容器。 Iterator it = al.iterator();//遍历集合元素。 while(it.hasNext()) { Object obj = it.next(); if(!newAl.contains(obj)) newAl.add(obj); } return newAl; } }
List人练习:
public static void sop(Object obj) {
System.out.println(obj);
}
public static void main(String[] args) {
ArrayList al = new ArrayList();
al.add(new Person("lisi01",10));//al.add(Object obj) == Object obj=new Person("lisi01",10)
al.add(new Person("lisi02",20));
al.add(new Person("lisi03",30));
al.add(new Person("lisi03",30));
al=singleElement(al);
Iterator it = al.iterator();
while(it.hasNext()) {
Person p = (Person)it.next();
sop(p.getName()+"..."+p.getAge());
}
}
public static ArrayList singleElement(ArrayList al) {
ArrayList newAl = new ArrayList();//新建一个容器。
Iterator it = al.iterator();//遍历集合元素。
while(it.hasNext()) {
Object obj = it.next();
if(!newAl.contains(obj))
newAl.add(obj);
}
return newAl;
}
}
class Person{
private String name;
private int age;
Person(String name,int age){
this.name = name;
this.age = age;
}
public boolean equals(Object obj) {
if(!(obj instanceof Person)) {
return false;
}
Person p = (Person)obj;
//System.out.println(this.name+"..."+p.age);
return this.name.equals(p.name) && this.age == p.age;
}
public void setName(String n) {
name = n;
}
public String getName() {
return name;
}
public void setAge(int a) {
age = a;
}
public int getAge() {
return age;
}
}
2.HashSet:元素是无序的(存入和取出的不一定一致)元素不可以重复
2.1HashSet 底层数据结构是哈希表
2.2TreeSet
Set集合的功能和collection是一致的
public static void main(String[] args) {
HashSet hs = new HashSet();
sop(hs.add("java01"));
sop(hs.add("java01"));
hs.add("java01");
hs.add("java02");
hs.add("java03");
hs.add("java04");
Iterator it = hs.iterator();
while(it.hasNext()) {
sop(it.next());
}
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
无序并且不重复
public static void main(String[] args) {
HashSet hs = new HashSet();
hs.add(new Person1("java01",11));
hs.add(new Person1("java02",12));
hs.add(new Person1("java03",13));
hs.add(new Person1("java03",13));
Iterator it = hs.iterator();
while(it.hasNext()) {
Person1 p = (Person1)it.next();
sop(p.getName()+"..."+p.getAge());
}
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
class Person1{
private String name;
private int age;
Person1(String name,int age){
this.name = name;
this.age = age;
}
public int hashCode() {
System.out.println(this.name+"...+hashCode");
return name.hashCode()+age;
}
public boolean equals(Object obj) {
if(!(obj instanceof Person1)) {
return false;
}
Person1 p = (Person1)obj;
System.out.println(this.name+"..equals.."+p.name);
return this.name.equals(p.name) && this.age == p.age;
}
public void setName(String n) {
name = n;
}
public String getName() {
return name;
}
public void setAge(int a) {
age = a;
}
public int getAge() {
return age;
}
}
会自动去除相同的元素,如果主要条件相同一定要判断一下次要条件。
创建学生对象存储按照学生年龄进行排序
public static void main(String[] args) {
TreeSet ts = new TreeSet();
ts.add(new Student("lisi01",12));
ts.add(new Student("lisi03",14));
ts.add(new Student("lisi02",13));
ts.add(new Student("lisi04",13));
Iterator it =ts.iterator();
while(it.hasNext())
{
Student stu = (Student)it.next();
System.out.println(stu.getName()+"..."+stu.getAge());
}
}
}
class Student implements Comparable{//该接口强制让学生具有比较行
private String name;
private int age;
Student(String name,int age){
this.name=name;
this.age=age;
}
public int compareTo(Object obj) {
//return -1;//return 0只存进去一个元素,-1是反着取,1是正着取出。
if(!(obj instanceof Student))
throw new RuntimeException("不是学生对象");
Student s = (Student)obj;
System.out.println(this.name+"..compareTO"+s.name);
if(this.age > s.age)
{return 1;}
if(this.age==s.age)
{return this.name.compareTo(s.name);}//如果年龄相同增加比较姓名是否相同
return -1;
}
public void setName(String n) {
name=n;
}
public String getName() {
return name;
}
public void setAge(int a) {
age=a;
}
public int getAge() {
return age;
}
}
public static void main(String[] args) {
TreeSet ts = new TreeSet();
ts.add(new Student("lisi01",12));
ts.add(new Student("lisi05",12));
ts.add(new Student("lisi03",14));
ts.add(new Student("lisi02",13));
ts.add(new Student("lisi04",13));
Iterator it =ts.iterator();
while(it.hasNext())
{
Student stu = (Student)it.next();
System.out.println(stu.getName()+"..."+stu.getAge());
}
}
}
class Student implements Comparable{//该接口强制让学生具有比较行
private String name;
private int age;
Student(String name,int age){
this.name=name;
this.age=age;
}
public int compareTo(Object obj) {
if(!(obj instanceof Student))
throw new RuntimeException("不是学生对象");
Student s = (Student)obj;
//System.out.println(this.name+"..compareTO"+s.name);
if(this.age > s.age)
{return 1;}
if(this.age==s.age)
{return this.name.compareTo(s.name);}//如果年龄相同增加比较姓名是否相同
return -1;
}
public void setName(String n) {
name=n;
}
public String getName() {
return name;
}
public void setAge(int a) {
age=a;
}
public int getAge() {
return age;
}
}
class MyCompare implements Comparator{
public int compare(Object o1,Object o2) {
Student s1 = (Student)o1;
Student s2 = (Student)o2;
int num = s1.getName().compareTo(s2.getName());
if(num==0) {
return new Integer(s1.getAge()).compareTo(s2.getAge());
// if(s1.getAge()>s2.getAge())
// return 1;
// if(s1.getAge()==s2.getAge())
// return 0;
// return 1;
}
return num;
}
}
练习:
public static void main(String[] args) {
TreeSet st = new TreeSet(new StrLenComparator());
st.add("a");
st.add("ab");
st.add("dca");
st.add("aaa");
st.add("ddef");
Iterator it = st.iterator();//迭代器
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
class StrLenComparator implements Comparator{
public int compare(Object o1,Object o2) {
String s1 = (String)o1;
String s2 = (String)o2;
int num = new Integer(s1.length()).compareTo(new Integer(s2.length()));
if(num==0) //如果不加判断会出现aaa不打印的现象。
return s1.compareTo(s2);
return num;
}
}
泛型
public static void main(String[] args) {
TreeSet<String> ts = new TreeSet<String>(new LenComparator());
ts.add("aa");
ts.add("bbc");
ts.add("a");
ts.add("abc");
ts.add("ewrwer");
Iterator<String> it = ts.iterator();
while(it.hasNext()) {
String s= it.next();
System.out.println(s);
}
}
}
class LenComparator implements Comparator<String>{
public int compare(String o1,String o2) {
int num = new Integer(o1.length()).compareTo(new Integer(o2.length()));
if(num==0)
return o1.compareTo(o2);
return num;
}
}
15-12