8.如何实现集合对象排序?定义一个复数类并按照复数实部大小对复数对象进行排序。
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
public class complex {
public int real;
public int virtual;
public complex(int real,int virtual) {
this.real=real;
this.virtual=virtual;
}
public String toString() {
return String.valueOf(real)+" +"+String.valueOf(virtual)+"i";
}
public static void main(String[] args) {
ArrayList<complex> list=new ArrayList<complex>();
complex a=new complex(3,4);
complex b=new complex(-1, 5);
complex c=new complex(2, 1);
list.add(a);list.add(b);list.add(c);
System.out.println(list);
Collections.sort(list, new Comparator<complex>() {
public int compare(complex c1,complex c2) {
return c1.real-c2.real;
}
});
System.out.println(list);
}
}
10.对第七章第6题进行适当改造,将异常类型与中文提示储存在一种 集合类当中,从而实现相应的功能。
import java.util.HashMap;
class myException{
@SuppressWarnings("rawtypes")
public HashMap<Class, String> hm = new HashMap<>();
public myException() {
hm.put(NullPointerException.class, "空指针异常");
hm.put(ArithmeticException.class, "算术异常");
hm.put(Exception.class, "其他异常");
}
}
public class test {
public static void main(String[] args) {
myException ex= new myException();
try {
String s = null;
//System.out.println(1/0);//除零异常
System.out.println(s.charAt(0));//空指针异常
}catch (NullPointerException e) {
Class<?> c = NullPointerException.class;
System.out.println(ex.hm.get(c));
}catch (ArithmeticException e) {
Class<?> c = ArithmeticException.class;
System.out.println(ex.hm.get(c));
}catch (Exception e) {
Class<?> c = Exception.class;
System.out.println(ex.hm.get(c));
e.printStackTrace();
}
}
}
1.
Arraylist
import java.util.ArrayList;
import java.util.Iterator;
public class test {
public static void main(String[] args) {
ArrayList<Integer> li = new ArrayList<Integer>();
for( int i=0;i<10;i++ ) //添加元素
li.add(i);
//遍历元素
for (int i = 0; i < li.size(); i++) {
int n = li.get(i);
System.out.print(n+" ");
}
System.out.println(" ");
li.add(0,99);//在第一个位置添加
li.remove(1);//删除元素
li.remove((Integer)5);//移除遇到的第一个指定个元素
//迭代器
Iterator<Integer> it = li.iterator();
while (it.hasNext()) {
int n = it.next();
System.out.print(n+" ");
}
}
}
LinkedList
import java.util.Iterator;
import java.util.LinkedList;
public class test {
public static void main(String[] args) {
String String = new String("AAA");
String String2 = new String("BBB");
String String3 = new String("CCC");
//创建LinkedList集合
LinkedList<String> li = new LinkedList<String>();
li.add(String);
li.add(String2);
li.add(String3);
//遍历
for (int i = 0; i < li.size(); i++) {
String n = li.get(i);
System.out.println(n);
}
System.out.println(" ");
li.add(0,String3);//在第一个位置添加
li.remove(1);//移除第二个元素
li.remove("CCC");//移除遇到的第一个指定个元素
//迭代器
Iterator<java.lang.String> it = li.iterator();
while (it.hasNext()) {
String n = (java.lang.String) it.next();
System.out.println(n);
}
}
}
HashSet
import java.util.HashSet;
import java.util.Iterator;
public class test {
public static void main(String[] args) {
HashSet<Character> set = new HashSet<Character>();
set.add('a');
set.add('b');
set.add('c');
set.add('d');
set.add('e');
//迭代遍历:
Iterator<Character> it = set.iterator();
while (it.hasNext()) {
char str = it.next();
System.out.print(str+" ");
}
System.out.println();
set.remove('c');//去掉指定元素
//for循环遍历:
for (char str : set) {
System.out.print(str+" ");
}
System.out.println(set.size());//输出大小
}
}
HashMap
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
public class test {
public static void main(String[] args) {
HashMap<Integer, String> hashMap = new HashMap<>();
// 添加元素
for (int i = 0; i < 5; i++) {
hashMap.put(i, "随机数" + (int) (Math.random() * 100));
}
// 获取元素数量
System.out.println("size: "+hashMap.size());
// map的遍历
for(Map.Entry<Integer, String> entry :hashMap.entrySet() ) {
System.out.println(entry.getKey()+" "+entry.getValue());
}
// 获取key是3的元素
System.out.println("key是3: "+hashMap.get(2));
//遍历所有的key
for(int key:hashMap.keySet()) {
System.out.print(key+" ");
}
//遍历所有的value
for(String value:hashMap.values()) {
System.out.print(value+" ");
}
System.out.println();
System.out.println("包含键值为4的吗? "+hashMap.containsKey(4));
System.out.println("包含指定值为100的吗? "+hashMap.containsValue("随机数100"));
//迭代器遍历
Iterator<Entry<Integer, String>> it = hashMap.entrySet().iterator();
while(it.hasNext()) {
Entry<Integer, String> next = it.next();
System.out.println(next.getKey()+" "+next.getValue());
}
System.out.println("-----------------");
hashMap.remove(3);//移除键值为3的元素
//通过键找值遍历
for(int k: hashMap.keySet()) {
System.out.println(k+" "+hashMap.get(k));
}
}
}