`
shinestarwang
  • 浏览: 42410 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

JAVA utils Collection 数组 list

阅读更多
一、Iterator(重要的接口)

是以统一方式对各种集合元素进行遍历/迭代的工具,也称为“迭代器”。

它允许在“遍历”过程中移除集合中的元素。

主要的方法有:

Boolean hasNext()

Object next()

Void remove()

例1:import java.util.*;

class  TestIterator

{

       public static void main(String[] args)

       {

              ArrayList a=new ArrayList();

              a.add("hu");

              a.add("g");

              a.add("n");

              Iterator it=a.iterator();

              while (it.hasNext())

              {

                     String ming=(String)it.next();

                     System.out.println(ming);

              }



              Vector v=new Vector();

              v.addElement(new Date());

              v.addElement(new Date(208121221L));

              it=v.iterator();

              while (it.hasNext())

              {

                     Date time=(Date)it.next();

                     System.out.println(time);

              }

              System.out.println("Hello World!");

       }

}

例2:import java.util.*;

class  TestIterator2

{

       public static void main(String[] args)

       {

              Vector v=new Vector();

              v.addElement(new Person("hu",18));

              v.addElement(new Person("g",26));

              v.addElement(new Person("n",40));



              Iterator it=v.iterator();

              while (it.hasNext())

              {

                     Person p=(Person)it.next();

                     System.out.println(p);

                     if(p.getName().equals("hu"))

                     {p.setAge(p.getAge()+50);}

                     else if(p.getName().equals("n"))

                            it.remove();

              }

              for (int i=0;i<v.size() ; i++)

              {

                     System.out.println(v.elementAt(i));

              }



              System.out.println("Hello World!");

       }

}

class Person

{

       private String name;

       private int age;

       public Person(String name,int age)

       {

              this.name=name;this.age=age;

       }

       public void setName(String name)

       {this.name=name;}

       public String getName()

       {return name;}

       public void setAge(int age)

       {this.age=age;}

       public int getAge()

       {return age;    }

       public String toString()

       {     return ""+name+" : "+ age;}

}

注意:不安全原因:放进去ude内容是object类,又把它转换为Iterator类型。解决方法:<String>

修改:public static void main(String[] args)

       {

              ArrayList<String> a=new ArrayList<String>();

              a.add("hu");

              a.add("g");

              a.add("n");

              Iterator<String> it=a.iterator();

              while (it.hasNext())

              {

                     String ming=it.next();

                     System.out.println(ming);

              }



二、HashSet

不允许出现重复的元素,不保证集合中元素的顺序,允许包含最多一个值为NULL的元素。

例:import java.util.*;

class TestHashSet

{

       public static void main(String[] args)

       {

              HashSet h=new HashSet();

              h.add("h");

              h.add("o");

              h.add(new Integer(3));

              h.add(new Double(3.0));

              h.add("o");

              System.out.println(h.add(new Integer(3)));

              System.out.println(h);

              System.out.println(h.size());

             

              Iterator it=h.iterator();

              while (it.hasNext())

              {

                     Object o=it.next();

                     System.out.println(o);

              }

              h.remove("o");

                     System.out.println(h);

      

       }

}



三、TreeSet

可以实现排序(升序)功能,描述的是Set的变体

例:import java.util.*;

class  TestTreeSet

{

       public static void main(String[] args)

       {

              TreeSet ts=new TreeSet();

              ts.add("orange");

              ts.add("banana");

              ts.add("apple");

              ts.add("grape");

              Iterator it=ts.iterator();

              while (it.hasNext())

              {

                     String fruit=(String)it.next();

                     System.out.println(fruit);

              }

              System.out.println("Hello World!");

       }

}



四、Comparable接口

该接口中定义的comparableTo()用于提供对其实现类的对象进行整体排序所需的比较逻辑。

用户在重新comparableTo()方法以定制比较逻辑时,需要确保其与等价性判断方法equals()保持一致。



五、HashMap

基于哈希表实现了前述的映射集合结构。

影响性能的参数:初始容量,加载因子(0.75)

若不存在当前的检索值时,get()方法就会返回NULL值。

例:import java.util.*;

class TestHashMap

{

       public static void main(String[] args)

       {

              HashMap h=new HashMap();

              h.put(new Integer(1003),new Person(1003,"huang",15));

              h.put(new Integer(1008),new Person(1008,"guo",25));

              h.put(1015,new Person(1015,"quan",55));

              Person p=(Person)h.get(1008);

              System.out.println(p);

              Set names=h.keySet();

              for (Object o:names )

              {

                     System.out.println(o);

              }

              Collection values=h.values();

              for (Object o:values )

              {

                     System.out.println(o);

              }

              System.out.println("Hello World!");

       }

}

public class Person

{

       private String name;

       private int age;private int id;

       public Person(String name,int age)

       {this.name=name;this.age=age;}

       public Person(int id,String name,int age)

       {this.id=id;

              this.name=name;this.age=age;

       }

       public void setName(String name)

       {this.name=name;}

       public String getName()

       {return name;}

       public void setAge(int age)

       {this.age=age;}

       public int getAge()

       {return age;    }

       public String toString()

       {     return name+" : "+ age;}

}



六、Hashtable

Hashtable中元素的“键”和“值”均不能为NULL,且它是同步(线程安全)的。

小结:3种线程同步的集合:

Vector,Stack,Hashtable



七、Enumeration接口

只提供了遍历Vecto和Hashtable(及其子类Properties),且不支持集合元素的移除操作。



八、Collection类

定义了多种集合的操作方法,实现了对集合元素的排序、取极值、批量拷贝、集合结构转换、循环移位以及匹配性检查等功能。

主要方法:

public static void sort(List list)

public static void reverse(List list) //倒置

public static void shuffle(List list) //随机打乱

public static void rotate(List list) //循环移位

例:import java.util.*;

public class TestCollections {

       public static void main(String[] args){

              ArrayList a=new ArrayList();

              a.add(75);              a.add(38);              a.add(21);

              a.add(4);        a.add(12);

              System.out.println(a);

              Collections.sort(a);

              Collections.reverse(a);

              Collections.shuffle(a);

              Collections.rotate(a, 2);

              ArrayList b=new ArrayList();

              b.add(55);b.add(66);

              System.out.println(b);

              Collections.copy(a,b);

              System.out.println(a);

              System.out.println(Collections.frequency(a,66));

              System.out.println(Collections.max(a));

              System.out.println(Collections.min(a));

       }

}



八、Arrays类

定义了多种数组操作方法,实现了对数组的排序、填充、转换为列表或字符串形式、增强的检索和深度比较等功能。

例:import java.util.*;

public class TestArrays {

       public static void main(String[] args) {

              Integer[] a={3,25,12,79,48};

              System.out.println(a);

              System.out.println(Arrays.toString(a));

              Arrays.sort(a);

              System.out.println(Arrays.toString(a));

              int idx=Arrays.binarySearch(a,25);

              System.out.println(idx);

              List list=Arrays.asList(3,4,5);

              System.out.println(list);

              list.set(2, 66);

              System.out.println(Arrays.toString(a));

       }

}



九、I/O系统

流:在Java程序中,对于数据的输入、输出操作以“流”方式进行。


文件

(外存)

程序

(内存)

输入流

输出流



分类:

1按数据流方向不同:输入流,输出流

2按处理数据单位不同:字节流(8位),字符流(16位)

3按功能不同:节点流,处理流

四种基本抽象流:

             字节流          字符流

输入流       InputStream       Reader

输出流       OuputStream      Writer



节点流:可以从一个特定的数据源(节点)读写数据。

数据流是“连接”在已存在的流上。


注:摘抄自别人的  留着用
分享到:
评论

相关推荐

    javautils一些工具类

    集合操作是Java开发中常见的任务,JavaUtils可能包含了对`List`、`Set`、`Map`等集合进行操作的工具,例如快速合并两个列表、去重、排序、查找元素、转换集合等。这些工具可以简化处理集合时的代码逻辑。 4. **...

    axis2.jar 解决 org.apache.axis2.util.JavaUtils.callStackToString问题

    &lt;Call Stack = DEBUG_FRAME = org.apache.axis2.util.JavaUtils.callStackToString(JavaUtils.java:564) DEBUG_FRAME = org.apache.axis2.description.ParameterIncludeImpl.debugParameterAdd(ParameterIncludeImpl...

    axis2解决 org.apache.axis2.util.JavaUtils.callStackToString问题

    在开发基于Axis2的Web服务时,可能会遇到各种错误和异常,其中之一就是与`org.apache.axis2.util.JavaUtils.callStackToString`相关的问题。这个问题通常出现在Axis2尝试获取并打印堆栈跟踪信息时。 `...

    java utils 工具类

    使用泛型可以确保JavaUtils工具类的方法在编译时就具有类型安全,例如,`ListUtils.concat(List&lt;T&gt; list1, List&lt;T&gt; list2)`确保合并的两个列表元素类型一致。 5. **线程安全**: 在多线程环境下,某些工具类或其...

    javautils工具类

    JavaUtils工具类可能包含静态方法,如`writeToExcel(List&lt;List&lt;String&gt;&gt; data, String filePath)`,该方法接受二维列表作为输入,将数据写入到指定路径的Excel文件中。 3. **Excel样式操作**:除了基本的数据读写,...

    utils:Java utils collection 工具集

    本篇文章将详细探讨名为"utils:Java utils collection 工具集"的资源,该资源主要包含闭包工具、树结构(特别是KD树)以及图形算法等关键组件。 首先,我们来关注闭包工具。闭包是Java 8引入的一个重要特性,它允许...

    JavaUtils,通用的Java工具类,主要包括基础工具类(时间、正则表达式、字符串、随机数等等)_JavaUtils.zip

    JavaUtils,通用的Java工具类,主要包括基础工具类(时间、正则表达式、字符串、随机数等等)_JavaUtils

    java-property-utils-1.9.1.jar,java-property-utils-1.10.jar

    Java Property Utils是Java开发中的一个实用工具库,主要用于处理和操作Java系统属性和配置文件。在给定的场景中,`java-property-utils-1.9.1.jar` 和 `java-property-utils-1.10.jar` 是这个库的两个不同版本,...

    JavaUtils: Java Utilities Library-开源

    1. **集合处理**:JavaUtils提供了对Java集合框架的扩展,包括对List、Set、Map等数据结构的操作增强,如便利的转换、过滤、映射等功能,这在处理数据集合时非常有用。 2. **函数式编程**:随着Java 8引入了Lambda...

    java代码:java工具类-javaUtils多种工具类-正则工具-base64工具等

    JavaUtils工具类是Java开发中常见的一类代码资源,它们提供了许多便利的静态方法,用于简化常见的编程任务。在这个压缩包文件"javaUtils"中,我们可以期待找到一系列实用的工具类,比如正则表达式处理工具和Base64...

    async-array-utils:数组相关的异步实用程序的集合

    异步数组实用程序 数组相关的异步实用程序的集合。 tl; dr 通过执行npm install @wojtekmaj/async-array-utils或yarn add @wojtekmaj/async-array-utils 。 通过import * as asyncArrayUtils from '@wojtekmaj/...

    JAVA utils工具类

    BeanUtils.java ...ClassUtils.java CollectionUtils.java ContentHandler.java DateUtils.java DigestUtils.java DomContentHandler.java DomUtils.java FileCopyUtils.java FileUtils.java GenericsUtils.java ...

Global site tag (gtag.js) - Google Analytics