第十六章
MyLinkList
实现单链表
package Chap16;
//测试类
public class TestMyList {
public static void main(String[] args) {
MyLinkList<String> stringMyLinkList = new MyLinkList<>();
stringMyLinkList.insert(1,"You");
stringMyLinkList.insert(1,"Love");
stringMyLinkList.insert(1,"I");
stringMyLinkList.print();
System.out.println();
MyLinkList<Integer> integerMyLinkList = new MyLinkList<Integer>();
integerMyLinkList.insert(1,4);
integerMyLinkList.insert(1,5);
integerMyLinkList.insert(1,7);
integerMyLinkList.insert(1,6);
integerMyLinkList.delete(2);
System.out.println("长度:"+integerMyLinkList.length());
integerMyLinkList.print();
}
}
//泛型接口
interface IList<E>{
int length();
void insert(int i ,E e);
void delete(int i);
void print();
}
//实现泛型接口
class MyLinkList<E> implements IList<E> {
int size = 0;
public Node head;
private class Node<E> {
private E data;
private Node next;
public Node(E data) {
this.data = data;
}
}
public MyLinkList() {
this.head = new Node<E>(null);
}
@Override
public int length() {
return size;
}
@Override
public void insert(int i, E e) {
Node<E> p = head;
for (int j = 0;j<i-1;j++){
p=p.next;
}
Node<E> q = new Node<E>(e);
q.next = p.next;
p.next = q;
size++;
}
@Override
public void delete(int i) {
Node<E> p = head;
for (int j = 0;j<i-1;j++){
p=p.next;
}
p.next = p.next.next;
size--;
}
@Override
public void print() {
while (head.next != null){
System.out.print(head.next.data+" ");
head.next = head.next.next;
}
}
}
运行结果
CountStr
import java.util.HashMap;
import java.util.Map;
public class CountStr {
public static void main(String[] args) {
String string = "to be or not to be,that is a question.";
String [] words = string.split("[ ,.]");
Map<String,Integer> map = new HashMap<>();
for (String s:words){
if(!map.containsKey(s))
map.put(s,1);
else{
int v = map.get(s);
v++;
map.put(s,v);
}
}
System.out.println(map);
}
}
运行结果: