您的位置:首页 > 其它

集合接口Collection案例

2016-05-09 21:58 232 查看
     以java8为基础。     package com.neutron.collection.demo;

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

/**
* collection接口说明
* @author zhanght
*
*/
@SuppressWarnings({"rawtypes", "unchecked"})
public class CollectionDemo {

public static void main(String[] args) {
insert();
containsAndRemove();
toArray();
}

/**
* 使用collection中添加方法
*/
public static void insert() {
ArrayList arr = new ArrayList();
System.out.println("arr is empty ? " + arr.isEmpty());
/**
* 判断list是否为空,主要使用size()方法判断是否为0
* public boolean isEmpty() {
return size == 0;
}
*/
arr.add(123);
arr.add("Str");
arr.add(true);
// insert not replace
arr.add(1, "replace Str");

//集合框架元素个数size方法
System.out.println("arr before size: " + arr.size());
//arr size: 4
System.out.println("arr before: " + arr);
//arr[123, replace Str, Str, true]

List list = new ArrayList();
list.add("here");
list.add(123);
arr.addAll(list);
System.out.println("arr size: after: " + arr.size());
//arr size: after: 6
System.out.println("arr after: " + arr);
//arr after: [123, replace Str, Str, true, here, 123]

arr.addAll(0, list);
System.out.println("arr end: " + arr);
//arr end: [here, 123, 123, replace Str, Str, true, here, 123]
}

/**
* 使用集合类中的判断和删除方法
*/
public static void containsAndRemove() {
ArrayList arr = new ArrayList();
arr.add(124);
arr.add(0);
arr.add(true);
arr.add(1, "replace Str");
List list = new ArrayList();
list.add("here");
list.add(123);
arr.addAll(list);

System.out.println("arr中是否存在123: " + arr.contains(123));
//arr中是否存在123: true

List list2 = new ArrayList();
list2.add("here");
list2.add(123);
System.out.println("arr中是否存在list2: " + arr.containsAll(list2));
//arr中是否存在list2: true

if (arr.contains(true)) {
arr.remove(0);
sop("arr remove(0) remove 123 or remove 0", arr);
// arr remove(0) remove 123 or remove 0[replace Str, 0, true, here, 123]
// we can know delete index 0, not data 0
}

arr.addAll(0, list2);
arr.addAll(list2);
sop("add 2times list2 result: ", arr);
// add 2times list2 result: [here, 123, replace Str, 0, true, here, 123, here, 123]

if (arr.containsAll(list2)) {
arr.removeAll(list2);
sop("remove list2 result: ", arr);
// remove list2 result: [replace Str, 0, true] 结果表明重复数据都删掉
}

// 根据条件去删除数据,java8新特性,使用lamda表达式
arr.removeIf(obj -> obj.toString().startsWith("re"));
sop("removeIf: ", arr);
/*
* default boolean removeIf(Predicate<? super E> filter) {
Objects.requireNonNull(filter);
boolean removed = false;
final Iterator<E> each = iterator();
while (each.hasNext()) {
if (filter.test(each.next())) {
each.remove();
removed = true;
}
}
return removed;
}
*/

// 清除collection中的数据
arr.clear();
sop("after clear: ", arr);
}

/**
* 集合编程数组
*/
public static void toArray() {
List arr = new ArrayList();
arr.add(17);
arr.add(12);
arr.add(13);
arr.add(14);
arr.add(15);
arr.add(16);
Object[] nums = arr.toArray();
sop("to array: ", nums);
// [Ljava.lang.Object;@1fb3ebeb
// we can see, if data is collection, println data is real data!
// if array, we can see address

List list2 = new ArrayList();
list2.add(new Person("name1"));
list2.add(new Person("name2"));
list2.add(new Person("name3"));
list2.add(new Person("name4"));

/*
* toArray(T[] a)
* 方法作用是,将调用此方法转化成数组的数据存储在数组a中
*/
Person[] persons = new Person[list2.size()];
list2.toArray(persons);
sop("T[] toArray: ", persons);
for (Person p : persons) {
sop("--:", p);
}
/*
* name1
name2
name3
name4
*
*
*/
}

public static void sop(String msg, Object obj) {
System.out.println(obj.toString());
}

}

class Person {
public String name;
public Person(String name) {
this.name = name;
}

@Override
public String toString() {
return this.name;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  集合