练习代码(八)对象的集合(二)

1.容器的打印

package first;

import java.util.*;


public class PrintingContainers {

    //定义一个方法接受Collection对象,来保存对象.

    static Collection fill(Collection c){
        c.add("dog");
        c.add("dog");
        c.add("cat");
        return c;
    }

    //定义一个方法接受Map对象,来保存对象.

    static Map fill(Map m){
        m.put("sky", "blue");
        m.put("flower","red");
        m.put("river", "green");
        return m;
    }

    public static void main(String[] args){

      //调用fill()方法来打印容器内容.

        //创建一个List类型的对象,让其打印List类型的容器(List类型要求元素按一定顺序排列).

        System.out.println(fill(new ArrayList()));

        //创建一个Set类型的对象,让其打印Set类型的容器(Set类型要求元素不能有重复).

        System.out.println(fill(new HashSet()));

        //创建一个Map类型的对象,让其打印Map类型的容器(Map类型要求元素成对有关联的出现).

        System.out.println(fill(new HashMap()));

    }

}

2.填充容器

package c112;

import java.util.*;

public class FillingLists {

    public static void main(String[] args){

        List list = new ArrayList();

        for(int i = 0; i < 10; i++){
            list.add("");
        Collections.fill(list, "Hello");
        System.out.println(list);

        }

    }

}

3.封装改写Collections2类

package c112;

public class Pair {

    public Object key,value;

    public Pair(Object k,Object v){
        key = k;
        value = v;
    }

}

package c112;

public interface MapGenerator{
    Pair next();
}

package c112;

import java.util.Collection;
import java.util.Map;

import second.*;

public class Collections2 {

    public static void fill(Collection c,Generator gen,int count){

        for(int i = 0; i < count; i++ )
            c.add(gen.next());

    }

    public static void fill(Map m,MapGenerator gen,int count){

        for(int i = 0; i < count; i++){

            Pair p = gen.next();
            m.put(p.key, p.value);

        }

    }

    public static class RandStringPairGenerator implements MapGenerator{

        private static Arrays2.RandStringGenerator rsg;

        public RandStringPairGenerator(int length){ 

            rsg = new Arrays2.RandStringGenerator(length);

        }

        @Override
        public Pair next() {
            // TODO Auto-generated method stub

            return new Pair(rsg.next(),rsg.next());

        }

    }

    public static RandStringPairGenerator rspg = new RandStringPairGenerator(5);


    public static class StringPairGenerator implements MapGenerator{

        private int index = -1;
        private String[][] d;

        public StringPairGenerator(String[][] data){

            d = data;

        }

        @Override
        public Pair next() {
            // TODO Auto-generated method stub

            index = (index+1)%d.length;
            return new Pair(d[index][0],d[index][1]);

        }

        public StringPairGenerator reset(){

            index = -1;
            return this;

        }
    }
        //public static MapGenerator geography;
        public static StringPairGenerator geography = new StringPairGenerator(CountryCapitals.pairs);

        public static class StringGenerator implements Generator{

            private String[][] d;
            private int position;
            private int index = 1;
            public StringGenerator(String[][] data, int pos){

                d = data;
                position = pos;

            }

            public Object next(){

                index = (index+1)%d.length;
                return d[index][position];

            }

            public StringGenerator reset(){

                index = -1;
                return this;

            }

        }

        public static StringGenerator countries = new StringGenerator(CountryCapitals.pairs,0);
        public static StringGenerator capitals = new StringGenerator(CountryCapitals.pairs,1);

}

//定义国家和首都的集合
package c112;

public class CountryCapitals {

    public   static    final String[][] pairs = {

        // Africa

            {"ALGERIA","Algiers"}, {"ANGOLA","Luanda"},

            {"BENIN","Porto-Novo"}, {"BOTSWANA","Gaberone"},

            {"BURKINA FASO","Ouagadougou"},

            {"BURUNDI","Bujumbura"},

            {"CAMEROON","Yaounde"}, {"CAPE VERDE","Praia"},

            {"CENTRAL AFRICAN REPUBLIC","Bangui"},

            {"CHAD","N'djamena"},  {"COMOROS","Moroni"},

            {"CONGO","Brazzaville"}, {"DJIBOUTI","Dijibouti"},

            {"EGYPT","Cairo"}, {"EQUATORIAL GUINEA","Malabo"},

            {"ERITREA","Asmara"}, {"ETHIOPIA","Addis Ababa"},

            {"GABON","Libreville"}, {"THE GAMBIA","Banjul"},

            {"GHANA","Accra"}, {"GUINEA","Conakry"},

            {"GUINEA","-"}, {"BISSAU","Bissau"},

            {"COTE D'IVOIR (IVORY COAST)","Yamoussoukro"},

            {"KENYA","Nairobi"}, {"LESOTHO","Maseru"},

            {"LIBERIA","Monrovia"}, {"LIBYA","Tripoli"},

            {"MADAGASCAR","Antananarivo"}, {"MALAWI","Lilongwe"},

            {"MALI","Bamako"}, {"MAURITANIA","Nouakchott"},

            {"MAURITIUS","Port Louis"}, {"MOROCCO","Rabat"},

            {"MOZAMBIQUE","Maputo"}, {"NAMIBIA","Windhoek"},

            {"NIGER","Niamey"}, {"NIGERIA","Abuja"},

            {"RWANDA","Kigali"},

            {"SAO TOME E PRINCIPE","Sao Tome"},

            {"SENEGAL","Dakar"}, {"SEYCHELLES","Victoria"},

            {"SIERRA LEONE","Freetown"}, {"SOMALIA","Mogadishu"},

            {"SOUTH AFRICA","Pretoria/Cape Town"},

            {"SUDAN","Khartoum"},

            {"SWAZILAND","Mbabane"}, {"TANZANIA","Dodoma"},

            {"TOGO","Lome"}, {"TUNISIA","Tunis"},

            {"UGANDA","Kampala"},

            {"DEMOCRATIC REPUBLIC OF THE CONGO (ZAIRE)",

        "Kinshasa"},

            {"ZAMBIA","Lusaka"}, {"ZIMBABWE","Harare"},

        // Asia

            {"AFGHANISTAN","Kabul"}, {"BAHRAIN","Manama"},

            {"BANGLADESH","Dhaka"}, {"BHUTAN","Thimphu"},

            {"BRUNEI","Bandar Seri Begawan"},

            {"CAMBODIA","Phnom Penh"},

            {"CHINA","Beijing"}, {"CYPRUS","Nicosia"},

            {"INDIA","New Delhi"}, {"INDONESIA","Jakarta"},

            {"IRAN","Tehran"}, {"IRAQ","Baghdad"},

            {"ISRAEL","Tel Aviv"}, {"JAPAN","Tokyo"},

            {"JORDAN","Amman"}, {"KUWAIT","Kuwait City"},

            {"LAOS","Vientiane"}, {"LEBANON","Beirut"},

            {"MALAYSIA","Kuala Lumpur"}, {"THE MALDIVES","Male"},

            {"MONGOLIA","Ulan Bator"},

            {"MYANMAR (BURMA)","Rangoon"},

            {"NEPAL","Katmandu"}, {"NORTH KOREA","P'yongyang"},

            {"OMAN","Muscat"}, {"PAKISTAN","Islamabad"},

            {"PHILIPPINES","Manila"}, {"QATAR","Doha"},

            {"SAUDI ARABIA","Riyadh"}, {"SINGAPORE","Singapore"},

            {"SOUTH KOREA","Seoul"}, {"SRI LANKA","Colombo"},

            {"SYRIA","Damascus"},

            {"TAIWAN (REPUBLIC OF CHINA)","Taipei"},

            {"THAILAND","Bangkok"}, {"TURKEY","Ankara"},

            {"UNITED ARAB EMIRATES","Abu Dhabi"},

            {"VIETNAM","Hanoi"}, {"YEMEN","Sana'a"},

        // Australiaand Oceania

            {"AUSTRALIA","Canberra"}, {"FIJI","Suva"},

            {"KIRIBATI","Bairiki"},

            {"MARSHALL ISLANDS","Dalap-Uliga-Darrit"},

            {"MICRONESIA","Palikir"}, {"NAURU","Yaren"},

            {"NEW ZEALAND","Wellington"}, {"PALAU","Koror"},

            {"PAPUA NEW GUINEA","Port Moresby"},

            {"SOLOMON ISLANDS","Honaira"}, {"TONGA","Nuku'alofa"},

            {"TUVALU","Fongafale"}, {"VANUATU","< Port-Vila"},

            {"WESTERN SAMOA","Apia"},

        // EasternEurope and former USSR

            {"ARMENIA","Yerevan"}, {"AZERBAIJAN","Baku"},

            {"BELARUS (BYELORUSSIA)","Minsk"},

            {"GEORGIA","Tbilisi"},

            {"KAZAKSTAN","Almaty"}, {"KYRGYZSTAN","Alma-Ata"},

            {"MOLDOVA","Chisinau"}, {"RUSSIA","Moscow"},

            {"TAJIKISTAN","Dushanbe"}, {"TURKMENISTAN","Ashkabad"},

            {"UKRAINE","Kyiv"}, {"UZBEKISTAN","Tashkent"},

        // Europe

            {"ALBANIA","Tirana"}, {"ANDORRA","Andorra la Vella"},

            {"AUSTRIA","Vienna"}, {"BELGIUM","Brussels"},

            {"BOSNIA","-"}, {"HERZEGOVINA","Sarajevo"},

            {"CROATIA","Zagreb"}, {"CZECH REPUBLIC","Prague"},

            {"DENMARK","Copenhagen"}, {"ESTONIA","Tallinn"},

            {"FINLAND","Helsinki"}, {"FRANCE","Paris"},

            {"GERMANY","Berlin"}, {"GREECE","Athens"},

            {"HUNGARY","Budapest"}, {"ICELAND","Reykjavik"},

            {"IRELAND","Dublin"}, {"ITALY","Rome"},

            {"LATVIA","Riga"}, {"LIECHTENSTEIN","Vaduz"},

            {"LITHUANIA","Vilnius"}, {"LUXEMBOURG","Luxembourg"},

            {"MACEDONIA","Skopje"}, {"MALTA","Valletta"},

            {"MONACO","Monaco"}, {"MONTENEGRO","Podgorica"},

            {"THE NETHERLANDS","Amsterdam"}, {"NORWAY","Oslo"},

            {"POLAND","Warsaw"}, {"PORTUGAL","Lisbon"},

            {"ROMANIA","Bucharest"}, {"SAN MARINO","San Marino"},

            {"SERBIA","Belgrade"}, {"SLOVAKIA","Bratislava"},

            {"SLOVENIA","Ljujiana"}, {"SPAIN","Madrid"},

            {"SWEDEN","Stockholm"}, {"SWITZERLAND","Berne"},

            {"UNITED KINGDOM","London"}, {"VATICAN CITY","---"},

        // North andCentral America

            {"ANTIGUA AND BARBUDA","Saint John's"},

            {"BAHAMAS","Nassau"},

            {"BARBADOS","Bridgetown"}, {"BELIZE","Belmopan"},

            {"CANADA","Ottawa"}, {"COSTA RICA","San Jose"},

            {"CUBA","Havana"}, {"DOMINICA","Roseau"},

            {"DOMINICAN REPUBLIC","Santo Domingo"},

            {"EL SALVADOR","San Salvador"},

            {"GRENADA","Saint George's"},

            {"GUATEMALA","Guatemala City"},

            {"HAITI","Port-au-Prince"},

            {"HONDURAS","Tegucigalpa"}, {"JAMAICA","Kingston"},

            {"MEXICO","Mexico City"}, {"NICARAGUA","Managua"},

            {"PANAMA","Panama City"}, {"ST. KITTS","-"},

            {"NEVIS","Basseterre"}, {"ST. LUCIA","Castries"},

            {"ST. VINCENT AND THE GRENADINES","Kingstown"},

            {"UNITED STATES OF AMERICA","Washington, D.C."},

        // SouthAmerica

            {"ARGENTINA","Buenos Aires"},

            {"BOLIVIA","Sucre (legal)/La Paz(administrative)"},

            {"BRAZIL","Brasilia"}, {"CHILE","Santiago"},

            {"COLOMBIA","Bogota"}, {"ECUADOR","Quito"},

            {"GUYANA","Georgetown"}, {"PARAGUAY","Asuncion"},

            {"PERU","Lima"}, {"SURINAME","Paramaribo"},

            {"TRINIDAD AND TOBAGO","Port of Spain"},

            {"URUGUAY","Montevideo"}, {"VENEZUELA","Caracas"},

          };



}

4.测试容器中元素的类型

package c112;

public class Cat {

    private int catNumber;

    public Cat(int i){
        catNumber = i;
    }

    public void id(){
        System.out.println("Cat #"+catNumber);
    }
}

package c112;

public class Dog {

    private int dogNumber;

    public Dog(int i){
        dogNumber = i;
    }

    public void id(){
        System.out.println("Dog #"+dogNumber);
    }

}

package c112;

import java.util.*;

public class CatAndDog {

    public static void main(String[] args){

        List list = new ArrayList();
        for(int i = 0; i < 7; i++)
            list.add(new Cat(i));
        list.add(new Dog(7));
        for(int i = 0; i < list.size(); i++)
        ((Cat)list.get(i)).id();
    }

}

5.制作一个类型明确的ArrayList

public class MouseList{
    private List list = new ArrayList();
    public void add(Mouse m){
        list.add(m);
    }
    publlic Mouse get(int index){
        return (Mouse)list.get(index);
    }
    public int size(){
        return list.size();
    }
}

6.迭代器

package c112;

import java.util.*;

public class CatAndDog {

    public static void main(String[] args){

        List list = new ArrayList();
        for(int i = 0; i < 7; i++)
            list.add(new Cat(i));
        Iterator e = list.iterator();
         while(e.hasNext())
         ((Cat)e.next()).id();

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值