一、关于集合
1、集合从本质上讲还是数组,是可以存储多个值的存储单元。
2、集合与数组的区别:
(1)数组必须指明长度,但是集合没有长度约束,集合中有多少个元素,那么集合的长度就是多少。
(2)数组的添加和删除不方便,集合可以轻松的实现添加和删除。
(3)集合可以添加任意类型的数据,任意类型的数据添加到集合中都变成了Object(基类)类型。
二、三种集合及其用法
1、List
(1)ArrayList数组集合,有序可重复
代码实例:
@SuppressWarnings({ "unchecked", "rawtypes" })
@Test
public void test01(){
List list=new ArrayList();
//原有的元素
list.add(1);
list.add(1.0);
list.add("Hello");
list.add(new Object());
System.out.println(list.size());//输出集合长度,【输出结果4】
for(Object o:list){
System.out.println(o); //输出集合中所有元素
}
System.out.println("添加元素后");
list.add(3,"World!"); //插入到第四个元素
for(Object o:list){
System.out.println(o); //输出集合中所有元素
}
System.out.println("删除第四个元素后");
list.remove(3); //删除第四个元素
for(Object o:list){
System.out.println(o); //输出集合中所有元素
}
System.out.println("迭代器Iterator");
Iterator it=list.iterator();
while(it.hasNext()) //输出所有元素
{
Object o=it.next();
System.out.println(o);
}
}
(2)链式集合:和ArrayList集合没有太大区别。
链式集合四个独有的方法:addFirst、addLast、removeFirsr、removeLast
代码示例:
@SuppressWarnings({ "unchecked", "rawtypes" })
@Test
public void test02(){
LinkedList list=new LinkedList();
list.add(1);
list.add(1.0);
list.add('c');
list.add("World!");
System.out.println(list.get(list.size()-1));//输出结果【World!】
System.out.println(list.get(3)); //输出结果【World!】
list.addFirst("First");
System.out.println(list.get(0)); //输出结果【First】
list.removeFirst();
System.out.println(list.get(0)); //输出结果【1】
}
2、Map:是一种key-value的集合
代码示例
@SuppressWarnings({ "unchecked", "rawtypes" })
@Test
public void test03()
{
/*
* Map集合
* Map集合是一种key-value的集合
*/
Map map=new HashMap();
map.put(1,"小明");
map.put(2,"小红");
System.out.println(map.get(1)); //输出结果【小明】
System.out.println(map.keySet());//输出结果【[1, 2]】
System.out.println(map.values());//输出结果【[小明, 小红]】
System.out.println(map);//输出结果【{1=小明, 2=小红}】
}
3、Set
代码示例
@SuppressWarnings({ "rawtypes", "unchecked" })
@Test
public void test04()
{
Set set=new HashSet();
set.add(1);
set.add(1.0);
set.remove(1.0);
System.out.println(set.size()); //输出结果【1】
Object[] o=new Object[10];
set.toArray(o);
System.out.println(o[0]);//输出结果【1】
}
三、泛型集合
1、区别:集合是可以添加任意类型的数据,但是泛型集合只能添加规定类型的数据
2、泛型集合其实是对加入到集合中的数据做了类型约束的集合
3、代码示例:
@Test
public void test06()
{
List<User> list=new ArrayList<User>();
list.add(new User());
System.out.println(list.get(0)); //输出结果【cn.demo.User@5b37e0d2】
User u=new User(1001,"root","123456","男","广东广州");
Map<Integer,User> map=new HashMap<Integer,User>();
map.put(u.getId(),u);
System.out.println(map.get(1001).getUsername()); //输出结果【root】
}
Java面向对象相关知识: |