Java 集合List、Set、Map

package com.neusoft.collection;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

/**
 * Set接口
 * 特点:无序的,不能有重复的元素
 * 主要的实现类:HashSet 无序;    TreeSet 有序
 * 添加:add;    遍历:while(iterator hasNext){it.next}
 */
public class SetDemo {
	public static void main(String[] args) {
		PersonManager personManager = new PersonManager();
		Person p1 = new Person();
		p1.setSid("100");
		p1.setSname("tom");
		p1.setAge(30);
		Person p2 = new Person();
		p2.setSid("101");
		p2.setSname("tom2");
		p2.setAge(32);
		Person p3 = new Person();
		p3.setSid("102");
		p3.setSname("tom3");
		p3.setAge(33);
		Person p4 = new Person();//new新建对象,不是重复
                Person p4 = p3;//赋值对象,为重复
		p4.setSid("102");
		p4.setSname("tom3");
		p4.setAge(33);
		
		Set<Person> set = new HashSet<>();
		set.add(p1);
		set.add(p2);
		set.add(p3);
		set.add(p4);
		Iterator<Person> iterator = set.iterator();
		while (iterator.hasNext()) {
			Person person = iterator.next();
			System.out.println(person.getSname());
		}
		
		Set<Integer> set1 = new HashSet<>();
		set1.add(1);
		set1.add(1);//重复数据
		set1.add(3);
		Iterator<Integer> iterator1 = set1.iterator();
		while (iterator1.hasNext()) {
			System.out.println(iterator1.next());
		}
	
                Set<Integer> set2 = new TreeSet<>();
		set2.add(1);
		set2.add(1);//重复数据,有序
		set2.add(3);
		set2.add(4);
		Iterator<Integer> iterator2 = set2.iterator();
		while (iterator2.hasNext()) {
			System.out.println(iterator2.next());
		}
	}
}
package com.neusoft.collection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * 集合:也是一种容器,在这个容器中只能存放引用类型(可以存放不同类型的元素 了解)
 * Collection:List \Set
 * List接口:实现类:ArrayList
 * List特点:是有序的集合,可以有重复的元素
 * 添加:add;   
    遍历:for(int i = 0;i<list.size();i++){list.get}
          for(类型,list){类型...}
            Iterator<E> list = list.iterator;
            while(iterator.hasNext()){ E = iterator.next;}
 */
public class ListDemo {
	public static void main(String[] args) {
		//创建一个集合
		List<Integer> list = new ArrayList<Integer>();
		//向集合中添加对象:自动添加十个位置
		list.add(1);//封装类型
		
		List<StringBuffer> list2 = new ArrayList<>();
		list2.add(new StringBuffer("tom"));
		list2.add(new StringBuffer("tom"));
		list2.add(new StringBuffer("tom"));
		list2.add(new StringBuffer("tom"));
		for(int i = 0 ;i<list2.size();i++){
			System.out.println(list2.get(i));
		}
		
		for (StringBuffer stringBuffer : list2) {
			System.out.println(stringBuffer);
		}
		
		//如何获取某一个元素
		System.out.println(list.get(0));//1
		
		//如何来限制集合中存放元素的类型:使用泛型<E> E表示一种未知的类型
		List<String> list1 = new ArrayList<>();
		list1.add("tom");
		list1.add("jazz");
		list1.add("jazz");
		list1.add("jazz");
		
		//如何对集合进行遍历
		for(int i = 0;i<list1.size();i++){
			System.out.println(list1.get(i));
		}
		
		//for ... each
		for (String string : list1) {
			System.out.println(string);
		}
		
		//迭代器
		Iterator<String> it = list1.iterator();
		while (it.hasNext()) {
			String s = (String) it.next();
			System.out.println(s);
		}
	}
}
package com.neusoft.collection;

public class Person {
	private String sid;
	private String sname;
	private int age;
	public String getSid() {
		return sid;
	}
	public void setSid(String sid) {
		this.sid = sid;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}
package com.neusoft.collection;

import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.helpers.ParseConversionEventImpl;

public class PersonManager {
	public List<Person> addPerson(List list) {
		return list;
	}

	public static void main(String[] args) {
		PersonManager personManager = new PersonManager();
		List<Person> list = new ArrayList<>();
		Person p1 = new Person();
		p1.setSid("100");
		p1.setSname("tom");
		p1.setAge(30);
		Person p2 = new Person();
		p2.setSid("101");
		p2.setSname("tom2");
		p2.setAge(32);
		Person p3 = new Person();
		p3.setSid("102");
		p3.setSname("tom3");
		p3.setAge(33);

		list.add(p1);
		list.add(p2);
		list.add(p3);
		List<Person> list2 = personManager.addPerson(list);
		for (Person person : list2) {
			System.out.println(person.getSid()+"--"+person.getSname()+"--"+person.getAge());
		}
	}
}
package com.neusoft.collection;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

/**
 * Map接口:
 * 它是以键(key)/值(value)对的方式来存储元素的
 * 它主要的实现:HashMap();
 * 向Map添加元素:key值唯一!!!
 * Put(K key, V value) 将指定的值与此映射中的指定键关联(可选操作)
 * get(Object key)     返回值指定键所映射的值;如果此映射不好喊该键的映射关系,则返回null
 */
public class MapDemo {
	public Map<String, Person> getName(Map<String, Person> map){
		return new HashMap<>();
//		return map;
	}
	public static void main(String[] args) {
		Person p1 = new Person();
		p1.setSid("100");
		p1.setSname("tom");
		p1.setAge(30);
		Person p2 = new Person();
		p2.setSid("101");
		p2.setSname("tom2");
		p2.setAge(32);
		Person p3 = new Person();
		p3.setSid("102");
		p3.setSname("tom3");
		p3.setAge(33);
		Person p4 = new Person();
		p4.setSid("102");
		p4.setSname("tom3");
		p4.setAge(33);
		
		Map<String, Person> map = new HashMap<>();
		map.put("one", p1);
		map.put("two", p2);
		map.put("three", p3);
		Person person = map.get("two");
		
		System.out.println(person.getSname());//tom2
		
		MapDemo mDemo = new MapDemo();
		Map<String, Person> map2 = mDemo.getName(map);
		Person person2 = map2.get("three");
		System.out.println(person.getSname());
		
		Set<Entry<String, Person>> set = map.entrySet();
		Iterator<Entry<String, Person>> iterator = set.iterator();
		while (iterator.hasNext()) {
			Entry<String, Person> entry = iterator.next();
			String key = entry.getKey();
			Person person1 = entry.getValue();
			System.out.println(key+"--"+person.getSname());
		}
	}
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值