Click here to Skip to main content
15,880,956 members
Articles / Programming Languages / Java

Functional Java

Rate me:
Please Sign up or sign in to vote.
4.11/5 (6 votes)
7 Dec 2010CPOL8 min read 39.5K   284   14  
Functional programming with functors and object streams in Java.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.5.0_22) on Sun Dec 05 01:19:43 EST 2010 -->
<TITLE>
Partition (Functional Java)
</TITLE>

<META NAME="keywords" CONTENT="swensen.functional.Partition class">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="Partition (Functional Java)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../swensen/functional/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../swensen/functional/GroupingSeq.html" title="class in swensen.functional"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../swensen/functional/Predicate.html" title="class in swensen.functional"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../index.html?swensen/functional/Partition.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Partition.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_swensen.functional.Tuple2">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
swensen.functional</FONT>
<BR>
Class Partition&lt;E&gt;</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../swensen/functional/Tuple2.html" title="class in swensen.functional">swensen.functional.Tuple2</A>&lt;<A HREF="../../swensen/functional/Seq.html" title="class in swensen.functional">Seq</A>&lt;E&gt;,<A HREF="../../swensen/functional/Seq.html" title="class in swensen.functional">Seq</A>&lt;E&gt;&gt;
      <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>swensen.functional.Partition&lt;E&gt;</B>
</PRE>
<DL>
<DT><DT><B>Type Parameters:</B><DD><CODE>E</CODE> - the element type</DL>
<HR>
<DL>
<DT><PRE>public class <B>Partition&lt;E&gt;</B><DT>extends <A HREF="../../swensen/functional/Tuple2.html" title="class in swensen.functional">Tuple2</A>&lt;<A HREF="../../swensen/functional/Seq.html" title="class in swensen.functional">Seq</A>&lt;E&gt;,<A HREF="../../swensen/functional/Seq.html" title="class in swensen.functional">Seq</A>&lt;E&gt;&gt;</DL>
</PRE>

<P>
A Tuple2 implementation representing a sequence of included (t1) and excluded (t2) elements.
<P>

<P>
<HR>

<P>
<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_swensen.functional.Tuple2"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class swensen.functional.<A HREF="../../swensen/functional/Tuple2.html" title="class in swensen.functional">Tuple2</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../swensen/functional/Tuple2.html#t1">t1</A>, <A HREF="../../swensen/functional/Tuple2.html#t2">t2</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../swensen/functional/Partition.html#Partition(swensen.functional.Seq, swensen.functional.Seq)">Partition</A></B>(<A HREF="../../swensen/functional/Seq.html" title="class in swensen.functional">Seq</A>&lt;<A HREF="../../swensen/functional/Partition.html" title="type parameter in Partition">E</A>&gt;&nbsp;t1,
          <A HREF="../../swensen/functional/Seq.html" title="class in swensen.functional">Seq</A>&lt;<A HREF="../../swensen/functional/Partition.html" title="type parameter in Partition">E</A>&gt;&nbsp;t2)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;E&gt; <A HREF="../../swensen/functional/Partition.html" title="class in swensen.functional">Partition</A>&lt;E&gt;</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../swensen/functional/Partition.html#create(swensen.functional.Seq, swensen.functional.Seq)">create</A></B>(<A HREF="../../swensen/functional/Seq.html" title="class in swensen.functional">Seq</A>&lt;E&gt;&nbsp;t1,
       <A HREF="../../swensen/functional/Seq.html" title="class in swensen.functional">Seq</A>&lt;E&gt;&nbsp;t2)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a Partition tuple from the given sequences (t1 is included, t2 is excluded).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../swensen/functional/Seq.html" title="class in swensen.functional">Seq</A>&lt;<A HREF="../../swensen/functional/Partition.html" title="type parameter in Partition">E</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../swensen/functional/Partition.html#getExcluded()">getExcluded</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A helper naming this.t2 as "excluded"</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../swensen/functional/Seq.html" title="class in swensen.functional">Seq</A>&lt;<A HREF="../../swensen/functional/Partition.html" title="type parameter in Partition">E</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../swensen/functional/Partition.html#getIncluded()">getIncluded</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A helper naming this.t1 as "included"</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_swensen.functional.Tuple2"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class swensen.functional.<A HREF="../../swensen/functional/Tuple2.html" title="class in swensen.functional">Tuple2</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../swensen/functional/Tuple2.html#equals(java.lang.Object)">equals</A>, <A HREF="../../swensen/functional/Tuple2.html#getHashCode()">getHashCode</A>, <A HREF="../../swensen/functional/Tuple2.html#toString()">toString</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="Partition(swensen.functional.Seq, swensen.functional.Seq)"><!-- --></A><H3>
Partition</H3>
<PRE>
public <B>Partition</B>(<A HREF="../../swensen/functional/Seq.html" title="class in swensen.functional">Seq</A>&lt;<A HREF="../../swensen/functional/Partition.html" title="type parameter in Partition">E</A>&gt;&nbsp;t1,
                 <A HREF="../../swensen/functional/Seq.html" title="class in swensen.functional">Seq</A>&lt;<A HREF="../../swensen/functional/Partition.html" title="type parameter in Partition">E</A>&gt;&nbsp;t2)</PRE>
<DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="create(swensen.functional.Seq, swensen.functional.Seq)"><!-- --></A><H3>
create</H3>
<PRE>
public static &lt;E&gt; <A HREF="../../swensen/functional/Partition.html" title="class in swensen.functional">Partition</A>&lt;E&gt; <B>create</B>(<A HREF="../../swensen/functional/Seq.html" title="class in swensen.functional">Seq</A>&lt;E&gt;&nbsp;t1,
                                      <A HREF="../../swensen/functional/Seq.html" title="class in swensen.functional">Seq</A>&lt;E&gt;&nbsp;t2)</PRE>
<DL>
<DD>Create a Partition tuple from the given sequences (t1 is included, t2 is excluded).
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>E</CODE> - the element type of the Partition<DT><B>Parameters:</B><DD><CODE>t1</CODE> - "included"<DD><CODE>t2</CODE> - "excluded"
<DT><B>Returns:</B><DD>a new Partition</DL>
</DD>
</DL>
<HR>

<A NAME="getIncluded()"><!-- --></A><H3>
getIncluded</H3>
<PRE>
public <A HREF="../../swensen/functional/Seq.html" title="class in swensen.functional">Seq</A>&lt;<A HREF="../../swensen/functional/Partition.html" title="type parameter in Partition">E</A>&gt; <B>getIncluded</B>()</PRE>
<DL>
<DD>A helper naming this.t1 as "included"
<P>
<DD><DL>

<DT><B>Returns:</B><DD>this.t1</DL>
</DD>
</DL>
<HR>

<A NAME="getExcluded()"><!-- --></A><H3>
getExcluded</H3>
<PRE>
public <A HREF="../../swensen/functional/Seq.html" title="class in swensen.functional">Seq</A>&lt;<A HREF="../../swensen/functional/Partition.html" title="type parameter in Partition">E</A>&gt; <B>getExcluded</B>()</PRE>
<DL>
<DD>A helper naming this.t2 as "excluded"
<P>
<DD><DL>

<DT><B>Returns:</B><DD>this.t2</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../swensen/functional/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../swensen/functional/GroupingSeq.html" title="class in swensen.functional"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../swensen/functional/Predicate.html" title="class in swensen.functional"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../index.html?swensen/functional/Partition.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Partition.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_swensen.functional.Tuple2">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

</BODY>
</HTML>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
United States United States
I'm developing Unquote, a library for writing unit test assertions as F# quoted expressions: http://code.google.com/p/unquote/

I am working through Project Euler with F#: http://projecteulerfun.blogspot.com/

I participate in Stack Overflow: http://stackoverflow.com/users/236255/stephen-swensen

Comments and Discussions