中级农民
- 积分
- 239
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2015-3-24
- 最后登录
- 1970-1-1
|
感谢分享~~ 写了一个 不知道对否- import java.util.*;
- //class friendList {
-
- class Person {
- int id;
- String name;
- List<Person> friends;
- public Person(String n, List<Person> list){
- name = n;
- friends = list;
- }
- // mike => {miller, Jelly, Billy}
- // miller => {miller, Cathy}
- // Billy => {Henry, John}
- // Cathy => {miller}. more info on 1point3acres.com
- // print friends list of current person, e.g, mike -> miller, Jelly, Billy, Henry, John
- public void printFriend() {
- // implement here
- HashSet<String> set = new HashSet<String>();
- Queue<Person> queue = new LinkedList<Person>();
- for(Person p : friends){
- queue.add(p);
- }
-
- while(!queue.isEmpty()){
- Person cur = queue.poll();
- if(set.contains(cur.name)) continue;
- set.add(cur.name);
- for(Person nextPerson : cur.friends){
- queue.add(nextPerson);
- }
- }
- for(String s : set){
- if(s.equals(name)) continue;
- System.out.println(s);
- }
- }
-
- public static void main(String[] args) {
- List<Person> list1 = new ArrayList<Person>();
- List<Person> list2 = new ArrayList<Person>();
- List<Person> list3 = new ArrayList<Person>();
- List<Person> list4 = new ArrayList<Person>();
- List<Person> list5 = new ArrayList<Person>();
- List<Person> list6 = new ArrayList<Person>();
- //list1.addAll(Arrays.asList("Miller", "Jelly", "Billy"));
- //list1.addAll(Arrays.asList("0", "1", "8"));
- Person p1 = new Person("mike", list1);
- Person p2 = new Person("miller", list2);
- Person p3 = new Person("Billy", list3);
- Person p4 = new Person("Cathy", list4);
- Person p5 = new Person("Henry", list5);
- Person p6 = new Person("Jelly", list6);
-
-
- list1.addAll(Arrays.asList(p2, p3, p6));
- list2.addAll(Arrays.asList(p1, p3));
- list3.addAll(Arrays.asList(p5));
- list3.addAll(Arrays.asList(p1));
-
- p1.printFriend();
-
- }
- }
- //}
复制代码 |
|